【发布时间】:2013-04-01 08:10:17
【问题描述】:
我想将列表中的每个第 N 个元素设置为其他内容。
(就像 this question 用于 Matlab。)
这是一个 N=2 的尝试:
>>> x=['#%d' % i for i in range(10)]
>>> x
['#0', '#1', '#2', '#3', '#4', '#5', '#6', '#7', '#8', '#9']
>>> x[0::2] = 'Hey!'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 4 to extended slice of size 5
我该如何解决这个问题?切片似乎期望一个可迭代的,而不仅仅是一个值。
【问题讨论】:
-
这不是一个数组,它是一个列表。这很重要,因为标准库中有一个数组类型,公共库
numpy中有一个不同的数组类型,并且使用numpyarray,x[::2] = 'Hey!'实际上会起作用.. -
谢谢,我已经更正了。