gpt4 book ai didi

python - 如何从列表中过滤项目并将它们存储在另一个列表中?

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:57 24 4
gpt4 key购买 nike

我有一个包含随机数字的列表。

   nums = [5, 7, 1, 5, 6, 2, 7, 8, 2, 1, 1, 4, 6]

本质上,我想将每个数字乘以 2,如果它是两位数,则将其从列表中过滤掉并将其存储在另一个列表中。我知道如何迭代地执行此操作,但是,我想知道是否有任何有趣的方法可以执行此操作。比如使用 filter() 或其他尝试。

现在我有这个:

   nums = list(map(lambda x: x * 2, nums))        # multiplies each number by two
nums = list(filter(lambda x: x < 10, nums)) # keeps only single digit numbers

现在,如何获取过滤掉的数字(大于 9)?我知道您总是可以将列表复制到一个新列表中,然后执行两个单独的过滤器来获得如下答案:

   nums = list(map(lambda x: x * 2, nums))
temp = nums
nums = list(filter(lambda x: x < 10, nums))
temp = list(filter(lambda x: x >= 10, temp))

但是,有没有一种方法可以做到这一点而不必复制列表并使用额外的内存。我不确定是否有一些非常简单的解决方案在我脑海中飞过。我是新手,所以感谢您的帮助。

最佳答案

我发现列表理解比 python 中的 map 和 filter 更简洁和可读。

nums = [5, 7, 1, 5, 6, 2, 7, 8, 2, 1, 1, 4, 6]
nums1 = [2*x for x in nums if x < 5]
nums2 = [2*x for x in nums if x >= 5]

关于python - 如何从列表中过滤项目并将它们存储在另一个列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com