Hướng dẫn how do i remove a non string from a list in python? - làm cách nào để xóa một chuỗi không phải khỏi danh sách trong python?

13

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang tìm cách 'làm sạch' một danh sách bằng cách loại trừ bất kỳ mục nào có chứa các ký tự ngoài 0-9 và tự hỏi liệu có cách nào hiệu quả hơn so với ví dụ không.

import re
invalid = re.compile['[^0-9]']    
ls = ['1a', 'b3', '1']
cleaned = [i for i in ls if not invalid.search[i]]
print cleaned
>> ['1']

Vì tôi sẽ hoạt động trên các danh sách lớn [các mục 5K] của các chuỗi dài [15 ký tự].

Khi được hỏi ngày 17 tháng 5 năm 2011 lúc 11:26May 17, 2011 at 11:26

Có gì sai với phương thức chuỗi isdigit không?

>>> ls = ['1a', 'b3', '1']
>>> cleaned = [ x for x in ls if x.isdigit[] ]
>>> cleaned
['1']
>>>

Đã trả lời ngày 17 tháng 5 năm 2011 lúc 11:29May 17, 2011 at 11:29

MatthmatthMattH

36.1k11 Huy hiệu vàng81 Huy hiệu bạc84 Huy hiệu đồng11 gold badges81 silver badges84 bronze badges

2

Bạn có thể sử dụng chức năng Isnumeric. Nó kiểm tra xem chuỗi chỉ bao gồm các ký tự số. Phương pháp này chỉ có mặt trên các đối tượng Unicode. Nó sẽ không hoạt động với các giá trị số nguyên hoặc float

myList = ['text', 'another text', '1', '2.980', '3']
output = [ a for a in myList if a.isnumeric[] ]
print[ output ]      
# Output is : ['1', '3']

Tham khảo: //www.tutorialspoint.com/python/string_isnumeric.htm

Đã trả lời ngày 11 tháng 11 năm 2017 lúc 20:22Nov 11, 2017 at 20:22

Chào mừng đến với cộng đồng Treehouse

Cộng đồng Treehouse là nơi gặp gỡ cho các nhà phát triển, nhà thiết kế và lập trình viên của tất cả các nền tảng và cấp độ kỹ năng để nhận được hỗ trợ. Phối hợp ở đây về các lỗi mã hoặc lỗi mà bạn cần phản hồi hoặc yêu cầu thêm một bộ mắt về dự án mới nhất của bạn. Tham gia cùng hàng ngàn sinh viên Treehouse và cựu sinh viên trong cộng đồng ngày hôm nay. .

Tìm kiếm để học một cái gì đó mới?

Treehouse cung cấp một bản dùng thử miễn phí bảy ngày cho sinh viên mới. Nhận quyền truy cập vào hàng ngàn giờ nội dung và một cộng đồng hỗ trợ. Bắt đầu thử nghiệm miễn phí ngay hôm nay.

Xin lưu ý, tôi không có nghĩa là 'Kiểm tra xem một đối tượng chuỗi có phải là chữ số không', ví dụ '8'.

Danh sách:

my_list = [5, 2, 1, True, 'abcdefg', 3, False, 4]

Những gì tôi đã thử cho đến nay:

# Returns 'AttributeError: 'int' object has no attribute 'isDigit''
my_list = [x for x in my_list if x.isDigit[]]

# Returns 'ValueError: invalid literal for int[] with base 10: 'abcdefg''
my_list = [x for x in my_list if int[x]]

Tôi biết rằng trong JavaScript, mã sau đây sẽ đạt được những gì tôi muốn làm:

var my_list = [5, 2, 1, true, 'abcdefg', 3, false, 4]

var filtered = my_list.filter[function[item] {
  return !isNaN[parseFloat[item]] && isFinite[item]
}]

console.log[filtered];

Cảm ơn trước

2 câu trả lời

Đây là cách bạn sẽ làm điều đó:

my_list = [5, 2, 1, True, 'abcdefg', 3, False, 4]
my_list =  [x for x in my_list if type[x] == int]

hàm isDigit [] trả về đúng hoặc sai nếu chỉ có số trong ---> chuỗi không dành cho chính số nguyên, vì các phần tử của my_list cũng chứa các số nguyên ] .isDigit [].

Làm cách nào để loại bỏ một yếu tố cụ thể khỏi danh sách trong Python?

Cách xóa một phần tử khỏi danh sách bằng phương thức Remove [] trong Python. Để xóa một phần tử khỏi danh sách bằng phương thức Remove [], chỉ định giá trị của phần tử đó và chuyển nó dưới dạng đối số cho phương thức. Xóa [] sẽ tìm kiếm danh sách để tìm và xóa nó.specify the value of that element and pass it as an argument to the method. remove[] will search the list to find it and remove it.

Làm thế nào để bạn loại bỏ một số không từ một danh sách trong Python?

Sử dụng phương thức re.sub [] để xóa tất cả các ký tự không phải là dấu chấm.từ một chuỗi, ví dụ:Kết quả = Re.Sub [r '[^0-9.] sub[] method to remove all non-numeric characters except for dot . from a string, e.g. result = re. sub[r'[^0-9.]

Làm cách nào để xóa một mục khỏi danh sách?

Sử dụng DEL để xóa một phần tử bằng chỉ mục, pop [] để xóa nó theo chỉ mục nếu bạn cần giá trị trả về và xóa [] để xóa một phần tử theo giá trị.Lần cuối cùng yêu cầu tìm kiếm danh sách và tăng giá trịerRor nếu không có giá trị như vậy xảy ra trong danh sách.

Làm cách nào để loại bỏ các ký tự không chữ số khỏi chuỗi trong Python?

Sử dụng re.sub [] để xóa tất cả các ký tự không phải là số từ một chuỗi.Gọi lại.Sub [mẫu, thay thế, chuỗi] bằng "[^0-9]" làm mẫu, chuỗi trống như thay thế và chuỗi dưới dạng chuỗi để trả về một bản sao của chuỗi bị tước của tất cả các ký tự không phải là số. sub[] to remove all non-numeric characters from a string. Call re. sub[pattern, replacement, string] with "[^0-9]" as pattern , the empty string as replacement , and the string as string to return a copy of the string stripped of all non-numeric characters.

Bài Viết Liên Quan

Chủ Đề