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

19

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 chỉ là người mới bắt đầu trong Python và tôi muốn biết liệu có thể xóa tất cả các giá trị số nguyên khỏi danh sách không? Ví dụ: tài liệu diễn ra như

['1','introduction','to','molecular','8','the','learning','module','5']

Sau khi loại bỏ, tôi muốn tài liệu trông giống như:

['introduction','to','molecular','the','learning','module']

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

Silentghost

295K64 Huy hiệu vàng301 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges301 silver badges291 bronze badges

hỏi ngày 1 tháng 7 năm 2010 lúc 15:16Jul 1, 2010 at 15:16

0

Để loại bỏ tất cả các số nguyên, hãy làm điều này:

no_integers = [x for x in mylist if not isinstance(x, int)]

Tuy nhiên, danh sách ví dụ của bạn không thực sự chứa số nguyên. Nó chỉ chứa các chuỗi, một số trong đó chỉ được sáng tác bằng các chữ số. Để lọc chúng ra, hãy làm như sau:

no_integers = [x for x in mylist if not (x.isdigit() 
                                         or x[0] == '-' and x[1:].isdigit())]

Alternately:

is_integer = lambda s: s.isdigit() or (s[0] == '-' and s[1:].isdigit())
no_integers = filter(is_integer, mylist)

gopi1410

6.3889 Huy hiệu vàng40 Huy hiệu bạc75 Huy hiệu Đồng9 gold badges40 silver badges75 bronze badges

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 15:17Jul 1, 2010 at 15:17

Daniel Stutzbachdaniel StutzbachDaniel Stutzbach

71.6K17 Huy hiệu vàng85 Huy hiệu bạc76 Huy hiệu đồng17 gold badges85 silver badges76 bronze badges

10

Không có mục nào trong danh sách của bạn là số nguyên. Chúng là các chuỗi chỉ chứa các chữ số. Vì vậy, bạn có thể sử dụng phương thức chuỗi

['introduction','to','molecular','the','learning','module']
3 để lọc các mục này.

items = ['1','introduction','to','molecular','8','the','learning','module','5']

new_items = [item for item in items if not item.isdigit()]

print new_items

Liên kết đến tài liệu: http://docs.python.org/l Library/stdtypes.html#str.isdigit

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 15:21Jul 1, 2010 at 15:21

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

Gary Kerrgary KerrGary Kerr

12.8k4 Huy hiệu vàng47 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges47 silver badges50 bronze badges

Bạn cũng có thể làm nó như vậy:

def int_filter( someList ):
    for v in someList:
        try:
            int(v)
            continue # Skip these
        except ValueError:
            yield v # Keep these

list( int_filter( items ))

Tại sao? Bởi vì

['introduction','to','molecular','the','learning','module']
4 tốt hơn là cố gắng viết các quy tắc hoặc các biểu thức thông thường để nhận ra các giá trị chuỗi mã hóa một số nguyên.

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 15:49Jul 1, 2010 at 15:49

S.LottS.LottS.Lott

377K78 Huy hiệu vàng503 Huy hiệu bạc772 Huy hiệu Đồng78 gold badges503 silver badges772 bronze badges

3

Cá nhân tôi thích bộ lọc. Tôi nghĩ rằng nó có thể giúp giữ cho mã có thể đọc được và đơn giản về mặt khái niệm nếu được sử dụng một cách hợp lý:

x = ['1','introduction','to','molecular','8','the','learning','module','5'] 
x = filter(lambda i: not str.isdigit(i), x)

hoặc

from itertools import ifilterfalse
x = ifilterfalse(str.isdigit, x)

Lưu ý lần thứ hai trả về một trình lặp.

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 16:44Jul 1, 2010 at 16:44

TWNEALETWNEALEtwneale

2.7763 huy hiệu vàng27 Huy hiệu bạc32 Huy hiệu đồng3 gold badges27 silver badges32 bronze badges

Để xóa tất cả các số nguyên khỏi danh sách

ls = ['1','introduction','to','molecular','8','the','learning','module','5']
ls_alpha = [i for i in ls if not i.isdigit()]
print(ls_alpha)

Đã trả lời ngày 1 tháng 3 năm 2017 lúc 12:19Mar 1, 2017 at 12:19

Buddubuddubuddu

515 huy hiệu đồng5 bronze badges

Vui lòng không sử dụng theo cách này để xóa các mục khỏi danh sách: (chỉnh sửa sau khi bình luận của THC4K)

['introduction','to','molecular','the','learning','module']
0

Điều này sẽ không hoạt động vì thay đổi danh sách trong khi lặp lại nó sẽ gây nhầm lẫn cho vòng lặp. Ngoài ra, item.isDigit () sẽ không hoạt động nếu mục là một chuỗi chứa số nguyên âm, như được ghi nhận bởi Razpeitia.

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 15:51Jul 1, 2010 at 15:51

1

Bạn cũng có thể sử dụng lambdas (và, rõ ràng là đệ quy), để đạt được điều đó (Python 3 cần thiết):

['introduction','to','molecular','the','learning','module']
1

Kết quả (được hiển thị từ 'L') sẽ là: ['Xin chào', 'Thế giới']]['hello', 'world']

Đã trả lời ngày 1 tháng 7 năm 2010 lúc 16:22Jul 1, 2010 at 16:22

BaltasarqbaltasarqBaltasarq

11.8k3 Huy hiệu vàng36 Huy hiệu bạc56 Huy hiệu Đồng3 gold badges36 silver badges56 bronze badges

2

Bạn có thể sử dụng

['introduction','to','molecular','the','learning','module']
5 tích hợp để có được một bản sao được lọc của danh sách.

['introduction','to','molecular','the','learning','module']
2

Trên đây có thể xử lý một loạt các đối tượng bằng cách sử dụng chuyển đổi loại rõ ràng. Vì gần như mọi đối tượng Python có thể được chuyển đổi hợp pháp thành một chuỗi, ở đây

['introduction','to','molecular','the','learning','module']
5 lấy một bản sao được chuyển đổi cho mỗi thành viên của_list và kiểm tra xem chuỗi (trừ bất kỳ ký tự '-' nào) là một chữ số số. Nếu có, thành viên được loại trừ khỏi bản sao được trả lại.

Các chức năng tích hợp rất hữu ích. Chúng được tối ưu hóa cao cho các nhiệm vụ mà chúng được thiết kế để xử lý và chúng sẽ giúp bạn không thể phát minh lại các giải pháp.

Đã trả lời ngày 20 tháng 1 năm 2013 lúc 19:41Jan 20, 2013 at 19:41

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

Phương thức Remove () xóa phần tử khớp đầu tiên (được truyền dưới dạng đối số) khỏi danh sách. Phương thức pop () loại bỏ một phần tử tại một chỉ mục nhất định và cũng sẽ trả về mục đã xóa. Bạn cũng có thể sử dụng từ khóa DEL trong Python để xóa một phần tử hoặc lát khỏi danh sách.. The pop() method removes an element at a given index, and will also return the removed item. You can also use the del keyword in Python to remove an element or slice from a list.

Làm cách nào để loại bỏ một chuỗi khỏi số nguyên trong Python?

Trong Python, bạn có thể sử dụng các phương thức thay thế () và dịch () để chỉ định ký tự nào bạn muốn xóa khỏi chuỗi và trả về kết quả chuỗi được sửa đổi mới.Điều quan trọng cần nhớ là chuỗi ban đầu sẽ không bị thay đổi vì chuỗi là bất biến.use the replace() and translate() methods to specify which characters you want to remove from a string and return a new modified string result. It is important to remember that the original string will not be altered because strings are immutable.

Làm cách nào để loại bỏ một chuỗi khỏi một mảng trong Python?

Bạn có thể sử dụng phương thức pop () để loại bỏ một phần tử khỏi mảng.use the pop() method to remove an element from the array.

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

Cũng có thể xóa các mục bằng cách sử dụng câu lệnh DEL bằng cách chỉ định một vị trí hoặc phạm vi có chỉ mục hoặc lát cắt ...
Hủy bỏ tất cả các mục: Rõ ràng ().
Xóa một mục theo chỉ mục và nhận giá trị của nó: pop ().
Xóa một mục theo giá trị: Xóa ().
Xóa các mục bằng chỉ mục hoặc lát: del ..
Xóa các mục đáp ứng điều kiện: Danh sách toàn diện ..