鱼C论坛

 找回密码
 立即注册
查看: 1893|回复: 11

[技术交流] Python总结(第十一章)【列表】

[复制链接]
发表于 2020-4-11 14:48:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 WangJS 于 2020-4-25 21:24 编辑

Python总结(第十一章)


11.列表

(1)创建列表

普通列表

语法:列表的名字 = [ , ]
  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚']
复制代码


混合列表

语法:列表的名字 = [ , ]
  1. >>> chaos = [2,3.14, [3,"Wang"],"JS"]
  2. >>> chaos
  3. [2, [3, 'Wang'], 'JS']
复制代码


空列表

语法:列表名 = []
  1. >>> empty = []
  2. >>> empty
  3. []
复制代码


(2)添加元素

append()         #加到结尾,单个参数
语法:列表名.append(添加内容)
  1. >>> family = ['grandpa','grandma','mother','father']
  2. >>> family.append('you')
  3. >>> family
  4. ['grandpa', 'grandma', 'mother', 'father', 'you']
复制代码


extend([])        #小括号里加中括号,表示扩充原列表,一个参数
语法:列表名.extend([ ,])    #把列表扩充到末尾
  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚']
  2. >>> friends.extend(['冰河星云','wuqramy'])
  3. >>> friends
  4. ['乘号', 'xinhua202002', 'qiuyouzhi', '永远的渣滓', '墨羽岚', '冰河星云', 'wuqramy']
复制代码



insert(①,②)    #①—索引值(要添加的位置 #从0开始);②—要添加的内容
语法:列表名.insert(①,②)    #把①添加到②那里
  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚']
  2. >>> friends.insert(1,"叙白")
  3. >>> friends
  4. ['乘号', '叙白', 'xinhua202002', 'qiuyouzhi', '永远的渣滓', '墨羽岚']
复制代码


(3)删除元素(列表)

reamove()       #删除元素(不需要知道位置)
        语法:列表名.reamove(要移除的内容)
  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚', '冰河星云', 'wuqramy']
  2. >>> friends.remove('墨羽岚')
  3. >>> friends
复制代码

['乘号', 'xinhua202002', 'qiuyouzhi', '永远的渣滓', '冰河星云', 'wuqramy']
del                   #可删除整个列表
语法:删除列表:del 列表名
                删除列表元素:del 列表名[索引值]
  1. >>> friends = ['乘号','xinhua202002','qiuyouzhi','永远的渣滓','墨羽岚', '冰河星云', 'wuqramy']
  2. >>> del friends[1]
  3. >>> friends
  4. ['乘号', 'qiuyouzhi', '永远的渣滓', '墨羽岚', '冰河星云', 'wuqramy']
  5. >>> del friends
  6. >>> friends
  7. Traceback (most recent call last):
  8.   File "<pyshell#7>", line 1, in <module>
  9.     friends
  10. NameError: name 'friends' is not defined
复制代码

pop                  #有返回值
语法:列表名.pop()   #返回最后一个值并删除它(可进行赋值)
                列表名.pop(索引值)  #删除并返回索引的那个值
  1. >>> friends = ['乘号','qiuyouzhi','永远的渣滓','墨羽岚', '冰河星云', 'wuqramy']
  2. >>> friends.pop()
  3. 'wuqramy'
  4. >>> last = friends.pop()
  5. >>> last
  6. '冰河星云'
  7. >>> friends.pop(1)
  8. 'qiuyouzhi'
  9. >>> friends
  10. ['乘号', '永远的渣滓', '墨羽岚']
复制代码


(4)获取元素

  1. 语法:列表名.[要获取的位]    #从0开始
  2. >>> friends
  3. ['乘号', '叙白', 'xinhua202002', 'qiuyouzhi', '永远的渣滓', '墨羽岚']
  4. >>> friends[4]
  5. '永远的渣滓'
复制代码


(5)列表分片

语法:列表名[开始元素索引值:结束元素索引值(不包括)]
  1. >>> friends = ['乘号','qiuyouzhi','永远的渣滓','墨羽岚', '冰河星云', 'wuqramy']
  2. >>> friends[1:3]
  3. ['qiuyouzhi', '永远的渣滓']
  4. >>> friends[:3]
  5. ['乘号', 'qiuyouzhi', '永远的渣滓']
  6. >>> friends[4:]
  7. ['冰河星云', 'wuqramy']
  8. >>> friends[:]
  9. ['乘号', 'qiuyouzhi', '永远的渣滓', '墨羽岚', '冰河星云', 'wuqramy']
复制代码


(6)列表常用操作符

<   >   ==

比较列表大小,只比较列表的第一个项的大小(如果不是数字就比较它的ASCII码)
  1. >>> list1 = [100,500]
  2. >>> list2 = [500,2]
  3. >>> list2 > list1
  4. True
  5. >>> list1 > list2
  6. False
复制代码


*=

列表翻倍,直接上例子:
>>> list3 = [111,0,0]
>>> list3 *= 5
>>> list3
[111, 0, 0, 111, 0, 0, 111, 0, 0, 111, 0, 0, 111, 0, 0]

and  or  not

和返回布尔值的东西一起用:
  1. >>> list2 > list1 or list1 > list3
  2. True
  3. >>> list2 > list1 and list1 > list3
  4. False
  5. >>> a = [1,2,3,4,5]
  6. >>> not a
  7. False
复制代码


in

判断是否包含,返回布尔值。
  1. >>> list4 = [111,222,333]
  2. >>> 111 in list4
  3. True
复制代码


+

用于连接两个列表
  1. >>> l1 = [1,2,3]
  2. >>> l2 = [4,5,6]
  3. >>> l1 + l2
  4. [1, 2, 3, 4, 5, 6]
复制代码


(6)列表的小伙伴(内置方法)

内置方法有哪些?让Python自己告诉你:
  1. >>> dir(list)
  2. ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
复制代码


count

语法:列表名.count()        #数这个列表中有多少个括号里的东西
  1. >>> list3 = [1,23,132,342,1,2,1,1,1,34]
  2. >>> list3.count(1)
  3. 5
复制代码


index

语法:列表名.index(要寻找的内容,[范围开始项],[结束项])
#判断括号里的东西在范围内的(第一次出现)位置,中括号表示可以不填
  1. >>> list3 = [1,23,132,342,1,2,1,1,1,34]
  2. >>> list3.index(1)
  3. 0
  4. >>> list3.index(1,3)
  5. 4
  6. >>> list3.index(1,5,9)
  7. 6
复制代码


reverse

语法:列表名.reverse()       #反转列表
  1. >>> list3 = [1,23,132,342,1,2,1,4,5,34]
  2. >>> list3.reverse()
  3. >>> list3
  4. [34, 5, 4, 1, 2, 1, 342, 132, 23, 1]
复制代码


sort

语法:列表名.sort([func],[key],[reverse])       #排序,reverse默认为False,为False是从大到小排,如果设为True就是从小到大排。
  1. >>> list3 = [1,23,132,342,1,2,1,4,5,34]
  2. >>> list3.reverse()
  3. >>> list3
  4. [34, 5, 4, 1, 2, 1, 342, 132, 23, 1]
  5. >>> list3.sort()
  6. >>> list3
  7. [1, 1, 1, 2, 4, 5, 23, 34, 132, 342]
  8. >>> list3 = [1,23,132,342,1,2,1,4,5,34]
  9. >>> list3.sort(reverse=True)
  10. >>> list3
复制代码


本节课学习的列表内置方法

  append()
  添加:添加到末尾
  extend()
  添加:表示扩充原列表
  insert(①,②)
  添加:①—索引值 ②—要添加的内容
  reamove()
  删除:直接写内容,不用知道位置
  del   删除:后面直接写要删除的列表(项)  
  pop()
  删除:删除最后一项,并返回
  count()
  数数:算出内容在列表中出现的次数
  index()
  寻找:寻找输入的内容
  reverse()
  反转:反转整个列表
  sort()
  排序:按照大小顺序排序
  clear()
  清空:清空整个列表


如果喜欢,别忘了评分订阅哟(传送门)!
喜欢别忘了.gif

评分

参与人数 1荣誉 +5 收起 理由
等风来999 + 5

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-11 14:53:17 | 显示全部楼层
(6)列表常用操作符

<   >   ==

比较列表大小,只比较列表的第一个项的大小(如果不是数字就比较它的ASCII码)
是先比较第一个,如果第一个比较不出来就比较第二个,以此类推

extend([])        #小括号里加中括号,表示扩充原列表,一个参数
extend的参数可以是任何可迭代对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 14:58:40 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-11 14:53
是先比较第一个,如果第一个比较不出来就比较第二个,以此类推

extend的参数可以是任何可迭代对象
  1. >>> l1 = ['ww',222]
  2. >>> l2 = [1]
  3. >>> l1 < l2
  4. Traceback (most recent call last):
  5.   File "<pyshell#2>", line 1, in <module>
  6.     l1 < l2
  7. TypeError: '<' not supported between instances of 'str' and 'int'
复制代码


但这样写就会报错欸
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 15:00:25 | 显示全部楼层
WangJS 发表于 2020-4-11 14:58
但这样写就会报错欸

本来就是啊,先比较第一个,但第一个不能比较,所以就报错了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 15:02:37 | 显示全部楼层
WangJS 发表于 2020-4-11 14:58
但这样写就会报错欸

给你个例子
  1. >>> [1,2,3]<[1,3,3]
  2. True
  3. >>> [1,2,3]<['1',3,3]
  4. Traceback (most recent call last):
  5.   File "<pyshell#1>", line 1, in <module>
  6.     [1,2,3]<['1',3,3]
  7. TypeError: '<' not supported between instances of 'int' and 'str'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 15:03:46 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-11 15:00
本来就是啊,先比较第一个,但第一个不能比较,所以就报错了啊

那什么情况下会比较第二个?
  1. >>> l1 = ['ww',222]
  2. >>> l2 = ['dd',32]
  3. >>> l1 < l2
  4. False
复制代码

这样比的也是第一个吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 15:04:33 | 显示全部楼层
WangJS 发表于 2020-4-11 15:03
那什么情况下会比较第二个?

这样比的也是第一个吧

我说过了,第一个比较不出来(就是相等)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 15:07:17 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-11 15:04
我说过了,第一个比较不出来(就是相等)

相等?
  1. >>> l1 == l2
  2. False
复制代码

(我好笨啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 15:07:50 | 显示全部楼层
WangJS 发表于 2020-4-11 15:07
相等?

(我好笨啊)

第一个元素相等,不是整个列表!
啊啊啊啊啊啊啊啊啊啊!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 16:10:53 | 显示全部楼层
终于更新了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 20:23:11 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-13 20:46:31 | 显示全部楼层
本帖最后由 WangJS 于 2020-4-13 20:55 编辑

@冰河星云@永恒的蓝色梦想   终于更新完了  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-19 06:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表