從以下列表中,我該如何刪除以Text結尾的元素。如何從列表中刪除特定的字符串
我預期的結果是a=['1,2,3,4']
我的列表是a=['1,2,3,4,5Text,6Text']
我應該使用的endsWith去了解這個問題呢?在逗號
從以下列表中,我該如何刪除以Text結尾的元素。如何從列表中刪除特定的字符串
我預期的結果是a=['1,2,3,4']
我的列表是a=['1,2,3,4,5Text,6Text']
我應該使用的endsWith去了解這個問題呢?在逗號
使用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
加入它們。
是的,我需要數組中的結果 – Rajeev
@Rajeev將該表達式置於'[]'內(解決方案已更新)。 –
拆分,然後是全數字的字符串過濾:
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()]
「5''和」6''不出現在OP的預期輸出中。 – user2357112
@ user2357112:啊,我太聰明瞭一半。 –
試試這個。這與你最後的每一個文本都有效。
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
爲什麼你的列表包含在它的逗號分隔值一個字符串,爲什麼你要在一個單一字符串輸出,而不是更實用的東西的清單?你喜歡「[1,2,3,4]」的結果嗎? – user2357112
您是否想刪除字面上以「Text」結尾的項目,或者您想要更通用的項目,例如刪除其中包含非數字字符的項目? – user2357112