[英]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.