Python 中列表的过滤元素
Filter elements of a list in Python
我想过滤给定列表的元素。
我有一个整数,我只想将数字保留在所有字符都小于该数字的列表中。 (现在是 5)。我可以为此编写更长的代码,但我想要使用 filter()
的 1 行代码。
我只做到了这一点:
def fil(l):
return list(filter(lambda x: x<5, [int(s) for i in l for s in str(i)]))
对于 l = [1,2,4,8,12]
它应该回馈:
[1, 2, 4, 12]
但是 returns 这个:
[1, 2, 4, 1, 2]
你能帮我解决这个问题吗?
不使用 filter
这可能有帮助:
l = [1,2,4,8,12]
results = [item for item in l if all(int(x) < 5 for x in str(item))]
如果您一定要使用过滤器和您的函数 fil
那么您有:
def fil(l):
return list(filter(lambda item: all(int(x) < 5 for x in str(item)), l))
我想过滤给定列表的元素。
我有一个整数,我只想将数字保留在所有字符都小于该数字的列表中。 (现在是 5)。我可以为此编写更长的代码,但我想要使用 filter()
的 1 行代码。
我只做到了这一点:
def fil(l):
return list(filter(lambda x: x<5, [int(s) for i in l for s in str(i)]))
对于 l = [1,2,4,8,12]
它应该回馈:
[1, 2, 4, 12]
但是 returns 这个:
[1, 2, 4, 1, 2]
你能帮我解决这个问题吗?
不使用 filter
这可能有帮助:
l = [1,2,4,8,12]
results = [item for item in l if all(int(x) < 5 for x in str(item))]
如果您一定要使用过滤器和您的函数 fil
那么您有:
def fil(l):
return list(filter(lambda item: all(int(x) < 5 for x in str(item)), l))