gpt4 book ai didi

python - 使用 python 列表理解从列表中删除项目

转载 作者:太空狗 更新时间:2023-10-29 20:10:44 28 4
gpt4 key购买 nike

我有一个整数列表,如下所示:

unculledlist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

我想从这个列表中剔除值,这样它看起来像这样:

culledlist = [0, 2, 4, 10, 12, 14, 20, 22, 24]

但我想通过使用列表理解来做到这一点。

这是我如何尝试剔除列表值的图形预览。如果我将列表值排列成行和列,会更容易理解。但这只是视觉上的。我不需要嵌套列表: enter image description here

我可以使用两个嵌套循环来完成:

unculledlist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]

index = 0
culledlist = []
for i in range(6):
for j in range(5):
if (i % 2 == 0) and (j % 2 == 0):
culledlist.append(unculledlist[index])
index += 1

print "culledlist: ", culledlist # culledlist = [0, 2, 4, 10, 12, 14, 20, 22, 24]

但我想用 python 列表推导来代替。

谁能举个例子?

谢谢。

编辑:

我想使用列表理解的原因是因为我的实际 unculledlist 有几百万个整数。用列表理解解决这个问题肯定会加快速度。我不关心可读性。我只是想做出一个更快的解决方案。

我不能使用 numpy 或 scipy 模块。但是我可以使用 itertools 模块。不确定使用 itertools 的解决方案是否比使用列表理解的解决方案更快?甚至 lambda

最佳答案

我看到这个并认为字符串操作会是更简单的方法

culled_list = [item for item in unculledlist if str(item)[-1] in ['0','2','4']]

结果仍然是一个整数列表

>>> culled_list
[0, 2, 4, 10, 12, 14, 20, 22, 24]

感谢 eugene y 提供了不太复杂的方法

>>> culled_list = [item for item in unculledlist if item % 10 in (0,2,4)]
>>> culled_list
[0, 2, 4, 10, 12, 14, 20, 22, 24]

关于python - 使用 python 列表理解从列表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473834/

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