L=[0, 1, 2, 3]
L[-1000:100] #结果是[0, 1, 2, 3]
#反向抽取序列(较低边界值大于较高边界值)会出现有意思的事情。
L[3:1] = '?' #结果是[0, 1, 2, '?', 3]
L[2] = [] #结果是[0, 1, [], '?', 3],因为L[2]返回元素而非列表
L[2:3] = [] #结果是[0, 1, '?', 3],L[2:3]才返回一个长度为1的列表
L[1:2] = 1 #会报错:"TypeError: can only assign an iterable",因为L[1:2]返回一个列表
字符串:一个字符可以是任意维度的第一个字符
同理,一个列表的一个元素可以是任意维度的第一个元素
>>> s="spam"
>>> s[0][0][0][0]
's'
>>> s[0]
's'
>>> s[0][0]
's'
>>> s[0][0][0]
's'
>>> ['s', 'p', 'a', 'm'][0]
's'
>>> ['s', 'p', 'a', 'm'][0][0]
's'
>>> ['s', 'p', 'a', 'm'][0][0][0]
's'
Python列表操作与序列截取详解
本文探讨了Python列表的一些独特操作,如负数索引、边界值异常及列表赋值。通过示例展示了当较低边界值大于较高边界值时的反常行为,以及在尝试将非迭代对象赋值给列表切片时引发的错误。同时,还解释了如何通过索引和切片修改列表元素,包括将列表和字符串视为多维结构的情况。

被折叠的 条评论
为什么被折叠?



