繁体   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