[英]Remove numbers from list which contains some particular numbers in python
给定清单:
l = [1,32,523,336,13525]
我有一个数字23作为某个特定功能的输出。
现在,
我想从列表中删除包含2或3或2和3的所有数字。
Output should be:[1]
我想写一些很酷的班轮代码。
请帮忙!
我的方法是:
1.)将int列表转换为字符串列表。
2.)然后使用for循环来检查字符2或字符3,如下所示: A=[x for x in l if "2" not in x]
(不确定如何在此行中包括3)
3.)使用以下方法将列表转换为整数列表:
B= [int(numeric_string) for numeric_string in A]
这个过程很安静,因为它涉及到转换为23号字符串以及列表的所有数字。我想立即在整数列表中进行。
您可以将数字转换为字符集:
>>> values = [1, 32, 523, 336, 13525]
>>> number = 23
>>> [value for value in values
... if set(str(number)).isdisjoint(set(str(value)))]
[1]
您正在寻找filter
功能。 假设你有一个整数列表,你只想要奇数:
def is_odd(val):
return val % 2 == 1
filter(is_odd, range(100))
或列表理解
[x for x in range(100) if x % 2 == 1]
特别是列表理解完全是Pythonic。 您现在需要的只是一个函数,它会根据您的特定需求返回一个布尔值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.