原创,转载请注明作者
在Python中,List是一个数据元素的有序序列,其中的元素可以是不同的类型。例如:
[0,1,2,[3,4,5],”python”,’hyxx’]
那么这个序列中每个元素对应的下标分别为0,1,2,3,4,5。
验证程序:
mylist=[0,1,2,[3,4,5],”python”,’hyxx’]
print(mylist)
print(mylist[0])
print(mylist[3])
输出:
0,1,2,[3,4,5],”python”,’hyxx’
0
[3,4,5]
同时,可以通过list(start:end)来输出起始位置和结束位置的两个下坐标。
例如:
print(mylist[1:3])
则输出:
1,2
最后重点来了,在为指定下标范围内的元素重新赋值时,可以这样:
例如:
mylist[1:3]=[7,8,9,10]
print(mylist)
输出:
[0, 7, 8, 9, 10, [3, 4, 5], 'python',
'hyxx']
相当于把下标范围内的值替换了,即把1,2替换为7,8,9,10,后面的下坐标值顺次增加。
上面的程序语句加了[](中括号),如果去掉,语法不会出现错误,即也可以这样:
mylist[1:3]=7,8,9,10
print(mylist)
输出结果一样:
[0, 7, 8, 9, 10, [3, 4, 5], 'python',
'hyxx']
但当赋空值或者赋值为一个对象时,则会出错。例如:
mylist[1:3]=10
则产生数据类型错误:
Traceback (most recent call last):
File "", line 1,
in
mylist[1:4]=5
TypeError: can only assign an iterable
但加了[]中括号,则正常。
mylist[1:3]=[10]
print(mylist)
输出:
[0, 10, 9, 10, [3, 4, 5], 'python',
'hyxx']
由此可见,为保证下标赋值语法的正确性,被赋值的对象一直使用[](中括号)比较稳妥一些。
拓展:
1.如果列表中下坐标范围内的赋值是其它类型的一到多个值呢?要不要加中括号?
2.如果列表中下坐标范围内的赋值范围是某个自定义变量名呢?要不要加中括号?
知识来源于实践。两个拓展的答案,通过简单的程序代码一测便知。