从以下列表中,我该如何删除以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