什么是列表list
列表是python中最基本的数据结构,列表中的每个元素都分配一个数字——即当前数据的位置,或索引,第一个索引是0第二个索引是1,依次类推
*列表是个“筐”什么也可以往里装。数据一多了就形成了结构。列表list是数据集合的一种形式
#列表是一个有序的、可变的数据结构/类型
1.声明一个列表list
方法一: 空值创建 list_data = list()
方法二: 空值创建 list_data = [ ]
列表之间使用 , 分隔 ,头尾使用方括弧 [ ]
列表的语法规则 [“中国”,‘SHENZHEN',44,True,1.0]
列表添加其他类型数据(嵌套)[{“name”:“like”,“age”:4}, (1,2),[1,3,4]]
特别注意:
1、列表内的每个元素(数据),遵守该数据类型的原有规则。比如字符串类型是要加引号""
2、可以有多层嵌套,每一层嵌套为一个独立体存在
2.列表list支持什么数据类型
name
= “like” 字符串Str
age
= 18 整数 Int
height
=1.74 浮点Float
is_yes
=True 布尔Bool
pets
=[“牛”,“虎”,“兔”] 列表List
work_cities
= (“北京”,“上海”,“广州”) 元组Tuple
teacher
={“姓名”:“张三”} 字典Dict
3.列表list的基本特性
增加 :支持空列表创建 、支持列表数据更新(添加)
删除 :支持列表整体删除、支持列表元素删除、支持切片删除
修改:支持列表数据修改(基于下标、索引、index)
查询:支持列表数据查询(基于下标、索引、index)、支持切片查询、支持第一级元素长度统计(len)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
personal_info = [ '张三' , "男" ] #列表基本操作 #增加数据 personal_info.append( 18 ) 最后一位追加>>>[ '张三' , "男" , 18 ] personal_info.insert( 1 , 1.80 ) 基于索引位置插入数据>>>[ '张三' , 1.80 , "男" , 18 ] #修改数据 personal_info[ 1 ] = 1.90 基于索引位置修改数据>>>[ '张三' , 1.90 , "男" , 18 ] personal_info[ 2 : 4 ] = [ "女" , 19 ] 基于索引范围修改数据>>>[ '张三' , 1.90 , "女" , 19 ] #查询数据 personal_info[ 1 ] 基于索引位置修改数据>>> 1.90 personal_info[ 2 : 4 ] 基于索引范围修改数据>>>[ "女" , 19 ] #删除数据 personal_info.pop( 1 ) 基于索引删除数据>>>[ '张三' , "女" , 19 ] personal_info.remove( 19 ) 基于值删除数据>>>[ '张三' , "女" ] del personal_info[ 0 : 2 ] 基于索引位置删除>>>[] personal_info.clear() 清空全部列表元素>>>[] del personal_info 删除整个列表>>>[] * 特别注意 1 、修改数据和查询数据”一线间“ 2 、圈定范围修改列表数据时,需要保证添加的数据为可迭代对象 3 、注意pop()默认为删除最后一位,可指定索引位置,并返回被删除的值 4 、remove()基于值 / 数据删除数据,删除的是第一个匹配的数据,并非所有 #列表合并 num_1 = [ 1 , 2 , 3 ] num_2 = [ 5 , 6 , 7 , 8 ] num_sum = num_1 + num_2 >>>[ 1 , 2 , 3 , 5 , 6 , 7 , 8 ] num_1.extend(num_2) 特别注意 extend()会改变当前变量内的值>>>[ 1 , 2 , 3 , 5 , 6 , 7 , 8 ] #列表排序 num_sum = num_2 + num_1 >>>[ 5 , 6 , 7 , 8 , 1 , 2 , 3 ,] num_sum.sort() 正序>>>[ 1 , 2 , 3 , 5 , 6 , 7 , 8 ] num_sum.sort(reverse = True ) 倒序>>>[ 8 , 7 , 6 , 5 , 3 , 2 , 1 ] sort()会直接改变当前变量内的值 #列表反转 msg = [ '好' , "好" , "学" , "习" ] msg.reverse() >>>[ "习" , "学" , "好" , "好" ] #元素数据统计 msg.count( "好" ) >>> 2 #自身复制 msg = msg * 2 msg>>>[ '好' , "好" , "学" , "习" , '好' , "好" , "学" , "习" ] #列表的长度 len (msg) >>> 8 #列表的复制 num = [[ 1 , 2 , 3 ],[ 6 , 7 ]] id (num) >>> 4567867877 id (num[ 0 ]) >>> 4598080890 (同) #浅复制 num_X = num.copy() id (num_X) >>> 4567867800 id (num_X[ 0 ]) >>> 4598080890 (同) #深复制 import copy num_Y = copy.deepcopy(num) id (num_Y) >>> 4567867800 id (num_Y[ 0 ]) >>> 4598080999 (不同) #包含关系判断 msg = [ "好" , "好" , '学' , '习' ] "习" in msg >>> True 仅支持当前层级判断 #切片延申 num = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] num[ 0 : 10 : 2 ] [起,止,步长] >>>[ 0 , 2 , 4 , 6 , 8 ] 类似于 for 循环中的 range ()函数 num[:: 2 ] >>>[ 0 , 2 , 4 , 6 , 8 ] 特别注意 起止不设定默认,为从头到尾的范围 #list在程序中的书写 #单列表 list = [ "哈士奇" , "萨摩" , "柴犬" , "泰迪" ] 列表这个数据类型的性质决定了它通常内部存在数据比较长,书写的时候会超出屏幕边界,所以可以换行: list = [ "哈士奇" , "萨摩" , "柴犬" , "泰迪" ] 注意对齐,好看清晰明了 #嵌套列表 list = [ [ '拍黄瓜' , '大拌菜' , '小葱拌豆腐' ], [ '白酒' , '啤酒' , '红酒' ], [ '橘子' , '香蕉' , '苹果' ], ] 一组数据里有高度、有宽度可以叫做: 1 、矩阵 2 、二维数组 #列表与for循环 #初级难度 dogs = [ "哈士奇" , "萨摩" , "柴犬" ] for dog in dogs: print (dog) 第一次:哈士奇 第二次:萨摩 第三次:柴犬 #中级难度 menus = [ [ '拍黄瓜' , '大拌菜' , '小葱拌豆腐' ], [ '白酒' , '啤酒' , '红酒' ], [ '橘子' , '香蕉' , '苹果' ], ] for menu in menus: print (menu) 第一次:[ '拍黄瓜' , '大拌菜' , '小葱拌豆腐' ] 第二次:[ '白酒' , '啤酒' , '红酒' ] 第三次:[ '橘子' , '香蕉' , '苹果' ] #高级难度 menus = [ [ '拍黄瓜' , '大拌菜' , '小葱拌豆腐' ], [ '白酒' , '啤酒' , '红酒' ], [ '橘子' , '香蕉' , '苹果' ], ] for menu in menus: print (menu) for food in menu: print (food) 第一次:[ '拍黄瓜' , '大拌菜' , '小葱拌豆腐' ] 内循环第一次: '拍黄瓜' 内循环第二次: '大拌菜' 内循环第三次: '小葱拌豆腐' 第二次:[ '白酒' , '啤酒' , '红酒' ] 内循环第一次: '白酒' 内循环第二次: '啤酒' 内循环第三次: '红酒' 第三次:[ '橘子' , '香蕉' , '苹果' ] 内循环第一次: '橘子' 内循环第二次: '香蕉' 内循环第三次: '苹果' |
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!
原文链接:https://blog.csdn.net/Tallbo/article/details/121262856