鉴于列表:
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的字符串以及所有列表的数量。我想立即在整数列表中进行。
答案 0 :(得分:3)
您可以将数字转换为字符集:
>>> values = [1, 32, 523, 336, 13525]
>>> number = 23
>>> [value for value in values
... if set(str(number)).isdisjoint(set(str(value)))]
[1]
答案 1 :(得分:0)
您正在寻找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。您现在需要的只是一个函数,它可以根据您的特定需求返回一个布尔值。