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