以相反的顺序分配Python切片不起作用!为什么?

2024-10-01 19:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

关于Python如何将列表实际分配给现有列表的片段的讨论并不多。在

例如,我做了以下事情:

l = [1,2,3,4,5,6]

l[2:5:1] = [7,7,7]

print l #prints [1, 2, 7, 7, 7, 6]

g = [1,2,3,4,5,6]

g[5:2:-1] = [7,7,7]

print g #prints [1, 2, 3, 7, 7, 7]

h = [1,2,3,4,5,6]

h[2:5:1] = [7,7,7,7]

print h #prints [1, 2, 7, 7, 7, 7, 6]


k = [1,2,3,4,5,6]

k[5:2:-1] = [7,7,7,7]

print k #gives a runtime error

实例:http://ideone.com/0mDBg7

为什么不能解释一下,为什么这个不能持续运行??在


Tags: 实例comhttp列表errorprints事情runtime
1条回答
网友
1楼 · 发布于 2024-10-01 19:21:54

如果切片长度的step不是1,则切片的长度和指定序列的长度应该匹配。在

>>> k = [1,2,3,4,5,6]
>>> len(k[5:2:-1])
3
>>> k[5:2:-1] = [7,7,7]  # This is okay, lengths are same.
>>> k
[1, 2, 3, 7, 7, 7]

>>> k[5:2:-1] = [7,7,7,7]  # not okay
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 4 to extended slice of size 3

如果切片1的长度(默认值),可以指定一个长度不同的序列;这将更改列表的长度。在

^{pr2}$

相关问题 更多 >

    热门问题