加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Python学习】List列表中下标范围内的元素赋值时中括号的必要性

(2020-06-01 10:56:18)
标签:

python编程

分类: 课堂教学

原创,转载请注明作者

 

Python中,List是一个数据元素的有序序列,其中的元素可以是不同的类型。例如:

[0,1,2,[3,4,5],”python”,’hyxx’]

那么这个序列中每个元素对应的下标分别为012345

 

验证程序:

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.如果列表中下坐标范围内的赋值范围是某个自定义变量名呢?要不要加中括号?

知识来源于实践。两个拓展的答案,通过简单的程序代码一测便知。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有