簡體   English   中英

如何從列表中刪除特定的字符串

[英]How to remove specific strings from a list

如何從以下列表中刪除以Text結尾的元素。

我的預期結果是a=['1,2,3,4']

我的列表是a=['1,2,3,4,5Text,6Text']

我應該使用endswith解決這個問題嗎?

分割逗號,然后過濾僅數字的字符串:

a = [','.join(v for v in a[0].split(',') if v.isdigit())]

演示:

>>> a=['1,2,3,4,5Text,6Text']
>>> [','.join(v for v in a[0].split(',') if v.isdigit())]
['1,2,3,4']

看起來似乎真的想使用多個元素的列表,這時您可以過濾:

a = ['1', '2', '3', '4', '5Text', '6Text']
a = filter(str.isdigit, a)

或者,使用列表推導(也更適用於Python 3):

a = ['1', '2', '3', '4', '5Text', '6Text']
a = [v for v in a if v.isdigit()]

使用str.endswith過濾掉以下項目:

>>> a = ['1,2,3,4,5Text,6Text']
>>> [','.join(x for x in a[0].split(',') if not x.endswith('Text'))]
['1,2,3,4']

在這里, str.split將字符串拆分為','並返回一個列表:

>>> a[0].split(',')
['1', '2', '3', '4', '5Text', '6Text']

現在,從此列表中篩選出項目,然后使用str.join將它們重新加入。

嘗試這個。 這適用於最后使用的每個文本。

a=['1,2,3,4,5Text,6Text']
a = a[0].split(',')

li = []
for v in a:
    try : li.append(int(v))
    except : pass

print li

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM