1 列表
1.1 列表的定义
- 关键字:list()
- 标识:[] 用逗号隔开
- 使用最频繁的数据类型,列表可以完成大多数集合类型的数据结构实现
- 支持字符、数字、字符串、甚至可以包含列表,即嵌套
- 打印列表类型:type()
- 1个元素的列表表示:可加可不加逗号
#列表表示,[]表示列表
#列表:是存储多个数据的数据类型,如有100条测试用例都保存在列表中,使用是取出来即可
#lsit()
my_list = []
my_list_1 = list() #数据类型转化使用
my_list = ['yuzi','哇哈哈', 'qqq']
print(my_list)
#列表可以存储多种数据类型
#什么数据都可以往里面丢
my_list = ['uuu', 18, [45, '23', 'num']]
print(my_list)
---结果----
['yuzi', '哇哈哈', 'qqq']
['uuu', 18, [45, '23', 'num']]
1.2 列表的操作
长度,len()
索引和切片,和字符串相同
my_list = ['uuu', 18, [45, '23', 'num']]
#列表的长度 与内部多少嵌套无关
print(len(my_list))
---结果---
3
1.3 列表的序列
可以通过索引取获取值,存储时是有顺序的
my_list = ['uuu', 18, [45, '23', 'num']]
#获取某一个元素,索引
#字符串索引操作,可以直接使用到列表中
#字符串索引之后得到的结果:字符串,
# 列表索引得到的结果:该元素是什么数据类型,得到的结果就是什么类型!!因为列表可以存储多种数据类型
print(my_list[1])
print(my_list[-3])
#切片
#列表切片得到的结果:保持原来的格式
print(my_list[0 : 2])
---结果 --
18
uuu
['uuu', 18]
1.4 可变类型,可以做增删改
1.4.1 增,添加元素
mlist.append(value):添加一个元素
mlist.insert(i, value):在指定位置添加
my_list.extend([xxx,xxx1]);添加多个元素
#增加元素,增加一个元素
#列表的最后添加一个元素
my_list.append("一叶障目")
print(my_list)
user.my_list(['sing','dance','book'])
#指定的索引位置添加一个元素
my_list.insert(1, "花海")
print(my_list)
#同时加多个元素,列表合并,加到末尾
my_list.extend(["bye-==", "青花瓷"])
print(my_list)
---结果----
['uuu', 18, [45, '23', 'num'], '一叶障目']
['uuu', '花海', 18, [45, '23', 'num'], '一叶障目']
['uuu', '花海', 18, [45, '23', 'num'], '一叶障目', 'bye-==', '青花瓷']
1.4.2 删,
mlist.remove('h'): 根据值来删除
mlist.pop(indec):根据索引来删除
del 整个变量将其从内存清除出去了,慎用
若找不到对应的值就会报错
remove
my_list =['uuu', '花海', 18, [45, '23', 'num'], '一叶障目', 'bye-==', '青花瓷']
#删除元素
#删除指定的内容位置,提前知道内容是什么
my_list.remove("一叶障目")
print(my_list)
#删除值得的索引位置
my_list.pop(2)
print(my_list)
----结果---
['uuu', '花海', 18, [45, '23', 'num'], 'bye-==', '青花瓷']
['uuu', '花海', [45, '23', 'num'], 'bye-==', '青花瓷']
pop
my_list =['uuu', '哇哈哈', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈']
#如果存在相同的内容,都移除么?
#只能移除单个,如果需要移除多个需要额外的处理
my_list.remove("哇哈哈")
print(my_list)
---结果-----
['uuu', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈']
del:慎用
my_list = [1, 2 ]
del my_list[0]
print(my_list)
del my_list
print(my_list)
---------结果 ----
[2]
Traceback (most recent call last):
File "F:\pythonProject1\uu.py", line 6, in <module>
print(my_list)
NameError: name 'my_list' is not defined
1.4.3 改
my_list = ['uuu', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈']
#修改某个元素
my_list[0] = '巧克力'
print(my_list)
------结果 ----
['巧克力', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈']
1.4.4 列表可变类型返回值
my_list = ['巧克力', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈']
new_list = my_list.append("hello")
print(my_list)
#None,是一种特殊的数据类型,表示什么都没有
#append在原来的列表中添加一个元素到末尾,最终改变的是my_list
#new_list 得到的是appen返回的值,append得到的结果是为None,由python设计者决定的
#函数时说明
print(new_list)
#remove
elem = my_list.remove('花海')
print(elem)
print(my_list)
#pop 函数得到的结果是我们删除的元素
#如果删除后不再索引这个值,就用remove,删除后还要继续用这个值,就用pop
elem = my_list.pop(0)
print(my_list)
print(elem)
#自己定义的,是可以控制返回的结果 return
d = my_list.append('tt')
print(d) #None
-------结果 -----------------------
['巧克力', '花海', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈', 'hello']
None
None
['巧克力', [45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈', 'hello']
[[45, '23', 'num'], 'bye-==', '青花瓷', '哇哈哈', '哇哈哈', 'hello']
巧克力
None
Process finished with exit code 0
1.5 列表函数操作
- index
- count
- clear
my_list = [1, 2]
#清除列表元素
print(my_list.clear()) #None
print(my_list)
----结果 -----
None
[]
- reverse:倒序
my_list = [1, 77, 6, 2, -5, 55]
#排序列表元素
a = my_list.sort(reverse=True)
print(my_list)
------结果 --------------
[77, 55, 6, 2, 1, -5]
- sort() 能排序才行,不然会报错,
对各个元素进行 > 判断, 所以要能执行,key关键字可以对每个元素进行进一步的处理后在比较比如mylist.sort(key = str),转化成字符串以后比较
my_list = [1, 77, 6, 2, -5, 55]
#排序列表元素,升序
print(my_list.sort())#None
a = my_list.sort()
print(a)
print(my_list)
#类型不一样排不了序,排序一般为数字
my_list =['whhh','天行健','魔域']
a =my_list.sort()
print(my_list)
-----结果--------------------------
None
None
[-5, 1, 2, 6, 55, 77]
['whhh', '天行健', '魔域']