繁体   English   中英

从列表中删除包含python中某些特定数字的数字

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM