列表的语法和使用

  1 列表的语法和使用  2 语法:中括号表示列表,小括号表示的是元组,元组是只读的
  3
  4 列表的基本操作:
  5 name.insert  插入
  6 name.append  追加
  7 name.remove  删除
  8 name.count   计数
  9 name.clear   清空
 10 name.index   查找
 11 name.extend  扩展
 12 name.reverse 颠倒
 13 name.sort    排序
 14 name.copy    复制
 15 len()        长度
 16 
 17 
 18 age = 20
 19 name = ["zjh","zl","zxc",12,age]  列表语法:以中括号开始和结束,中间的每一个值叫元素,列表里可以存变量。
 20 print name
 21 ['zjh', 'zl', 'zxc', 12, 20]
 22 name[1]                              从列表取值:起始位置(索引值)是从0开始,所以1是'zl'          
 23 'zl'
 24 name[-1] 取出列表中最后一个值是-1,以此类推
 25 '20'
 26 name[0:2]    列表中取一部分值
 27 ['zjh', 'zl']
 28 name[-3:]     取最后的3个值,最后一个默认不写
 29 name[:3]     取最前的3个值
 30 
 31 >>> name                                切片:可以在取出的值中继续取值
 32 ['zjh', 'zzx', 'zxc', 20, 20]
 33 >>> name[:5]
 34 ['zjh', 'zzx', 'zxc', 20, 20]
 35 >>> name[:5][2:4]
 36 ['zxc', 20]
 37 >>> name[:5][2:4][0][1]
 38 'x'
 39 
 40 >>> name                                改值:改值操作
 41 ['zjh', 'zzx', 'zxc', 20, 20]
 42 >>> name[1] = 'zzz'                        
 43 >>> name
 44 ['zjh', 'zzz', 'zxc', 20, 20]
 45 >>> 
 46 
 47 >>> name                                插入:在zzz后面插入zhangjianghua,所以要插入的下标是2,用name.insert插入,一次只能插入一个值
 48 ['zjh', 'zzz', 'zxc', 20, 20]
 49 >>> name.insert(2,"zhangjianghua")
 50 >>> name
 51 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20]
 52 >>> 
 53 
 54 >>> name                                追加:直接在列表的最后面追加一个值,直接用append追加
 55 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20]
 56 >>> name.append('zhangliang')
 57 >>> name
 58 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20, 'zhangliang']
 59 >>> 
 60 
 61 >>> name                                删除:用name.remove(xxx) 直接删除 
 62 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20, 'zhangliang']
 63 >>> name.remove("zxc")
 64 >>> name
 65 ['zjh', 'zzz', 'zhangjianghua', 20, 20, 'zhangliang']
 66 >>> 
 67 
 68 del name        del不用加括号,直接删除一个列表;del是python中的全局功能,删除内存中的一个数据,能删除任何东西。
 69 del name[2:4]   
 70 
 71 >>> name                                修改:给其中一个值添加备注
 72 ['zjh', 'zzz', 'zhangjianghua', 20, 20, 'zhangliang']
 73 >>> name[2] = "zhangjianghua(didi)"
 74 >>> name
 75 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang']
 76 >>> 
 77 
 78 >>> name                                步长:默认是走一格,可以定义它走多长。
 79 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang']
 80 >>> name[0:-1:1]
 81 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20]
 82 >>> name[0::1]
 83 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang']
 84 >>> name[::2]
 85 ['zjh', 'zhangjianghua(didi)', 20]
 86 >>> 
 87 
 88 >>> name                                判断:判断列表里是否存在一个元素
 89 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang']
 90 >>> print(9 in name)
 91 False
 92 >>> print(20 in name)
 93 True
 94 >>> 
 95 
 96 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8]        判断:name.count 判断一个列表中存在多少个8
 97 if 8 in name:
 98     num_of_element = name.count(8)                                        
 99     print("[%s] 8 is in name" % num_of_element)
100 执行结果:    
101 [7] 8 is in name
102 
103 
104 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8]            判断并修改:name.index找出列表中所有的8,并且全部替换为88888.
105 if 8 in name:
106     num_of_ele = name.count(8)
107     position_of_ele = name.index(8)
108     print("[%s] 8 is in name,position: [%s]" % (num_of_ele,position_of_ele))
109 for i in range(name.count(8)):
110     ele_index = name.index(8)                
111     name[ele_index] = 88888
112 print (name)
113 执行结果:
114 [7] 8 is in name,position: [10]
115 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 88888, 88888, 4, 9, 88888, 88888, 88888, 88888, 88888]
116 
117 
118 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8]            扩展:name.extend 扩展进来一个新的列表,新的列表依然存在
119 name2 = ["gg","nn","mm","ee"]
120 name.extend(name2)
121 print (name)
122 print (name2)
123 执行结果:
124 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 8, 8, 4, 9, 8, 8, 8, 8, 8, 'gg', 'nn', 'mm', 'ee']
125 ['gg', 'nn', 'mm', 'ee']
126 
127 
128 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8]            颠倒:name.reverse 排序颠倒
129 name2 = ["gg","nn","mm","ee"]
130 name.extend(name2)
131 print (name)
132 name.reverse()
133 print (name)
134 执行结果:
135 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 8, 8, 4, 9, 8, 8, 8, 8, 8, 'gg', 'nn', 'mm', 'ee']
136 ['ee', 'mm', 'nn', 'gg', 8, 8, 8, 8, 8, 9, 4, 8, 8, 66, 66, 55, 44, 33, 11, 22, 'cc', 'xx', 'zz']
137 
138 
139 
140 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2]                        排序:name.sort 按照从小到大顺序依次排列(python3里不支持数字和字符串同时排序,python2默认是数字在前,字符串在后)
141 print (name)
142 name.sort()
143 print (name)
144 执行结果:
145 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2]
146 [1, 1, 2, 5, 11, 15, 22, 31, 31, 33, 43, 45, 55, 689]
147 
148 
149 
150 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2]                            删除:指定删除某一个,默认删除表里最后一个值
151 print (name)
152 name.pop(2)
153 print (name)
154 执行结果:
155 name = [55,33,11,45,1,31,31,5,15,689,43,1,2]    
156 
157 
158 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2,"zz"]                    复制:name.copy 复制一个独立、完整的列表
159 print (name)
160 name2 = name.copy()
161 print (name2)
162 name2[0] = 55555
163 print (name,name2)
164 执行结果:
165 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
166 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
167 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] [55555, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
168 
169 
170 name = [55,33,[22,11,45,1],31,31,5,15,689,43,1,2,"zz"]
171 print (name)
172 name2 = name.copy()
173 print (name2)
174 print (name[2][1],name2[2][1]) 
175 name[2][1] = 11111                                                    嵌套列表的copy:通过修改name表中嵌套的列表内的值,可以看出,python默认只copy第一层,嵌套列表里的值不copy;嵌套列表内的值和列表是储存在同一个内存块里的。
176 print (name,name2)                                                        
177 执行结果:
178 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
179 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
180 11 11
181 [55, 33, [22, 11111, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] [55, 33, [22, 11111, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
182 
183 
184 
185 name = [55,33,[22,11,45,1],31,31,5,15,689,43,1,2,"zz"]                长度:len() 查看列表的长度
186 print (name)
187 print ("name  ",len(name))
188 执行结果:
189 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz']
190 name   12
191 
192 print (type(name))                                          查看变量的类别
193 执行结果:
194 <class 'list'>                class:类别,list:列表
195 
196 
197 
198 
199 基本操作:
200 name.insert  插入
201 name.append  追加
202 name.remove  删除
203 name.count   计数
204 name.clear     清空
205 name.index     查找
206 name.extend     扩展
207 name.reverse 颠倒
208 name.sort     排序
209 name.copy     复制
210 len()         长度
211 
212 
213 
214 
215 
216 元组:(不可变列表)
217 创建元组:
218 name = ("zz","xx",12,21,321)                语法:中括号表示列表,小括号表示的是元组,元组是只读的
219 print(type(name))
220 执行结果:
221 <class 'tuple'>                class:类别  tuple:元组
原文地址:https://www.cnblogs.com/zhangjianghua/p/8215396.html