gpt4 book ai didi

python - 访问列表的某些元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:06 27 4
gpt4 key购买 nike

无法弄清楚如何以一种漂亮的方式做到这一点:

我有一个包含 n 个元素的列表,我想访问列表的每个 m 元素。

例如:[1, 2, 3, 4, 5] 和 m = 2 会给出[2, 4]

我可以简单地用一个循环来完成,但是没有更“Pythonic”的方式吗?

提前致谢!

编辑:

我好像忘记了什么。我想,不仅要获取这些值,还要修改它们。我尝试切片 a[::2] = 3,但它不起作用。 . .

我正在寻找类似的东西

最佳答案

切片语法为你做这件事:

>>> my_list = range(10)
>>> my_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> my_list[::2]
[0, 2, 4, 6, 8]
>>> my_list[1::2]
[1, 3, 5, 7, 9]

这是一种包装列表以获得您想要的原始赋值行为的方法,但我不确定我是否会推荐它:

class AssignableSlice(list):
def __setitem__(self, i, v):
if isinstance(i, slice):
for ii in xrange(*i.indices(len(self))):
self[ii] = v
else:
super(AssignableSlice, self).__setitem__(i, v)

a = AssignableSlice(range(10))
print a
a[::2] = 3
print a
a[1::3] = 99
print a

产生:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 1, 3, 3, 3, 5, 3, 7, 3, 9]
[3, 99, 3, 3, 99, 5, 3, 99, 3, 9]

关于python - 访问列表的某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132526/

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