Python笔记(2)——列表一:列表简介(Python编程:从入门到实践)
一、列表是什么
-
列表 :由一系列按 特定顺序 排列的元素组成(列表是 有序集合 )。
-
表示 :用 方括号[] 来表示,并用 逗号 来分隔其中的元素。
-
访问 :访问列表元素,可指出 列表的名称 ,再指出 元素的索引 ,并将其放在 方括号内 。请求获取列表元素时,Python只 返回该元素 ,而不包括方括号和引号。
-
列表索引从0开始 :在Python中, 第一个列表元素的索引为0 ,而不是1。要访问第四个列表元素,可使用索引3。索引-1返回列表最后一个元素。 索引-2返回倒数第二个列表元素 。
-
使用列表中的各个值 :可像使用其他变量一样使用列表中的各个值。例如,可使用 拼接(+) 根据列表中的值来创建消息。
1 F=[ ' red ' , ' blue ' , ' green ' , ' yellow ' ] 2 3 # 访问列表元素: 4 print (F[2]) # 列表名称+[索引] 5 6 # 列表索引从0开始: 7 print (F[0]) # 第一个元素 8 print (F[3]) # 第四个元素 9 print (F[-1]) # 最后一个元素 10 print (F[-3]) # 倒数第三个元素 11 12 # 使用列表中的各个值: 13 print ( " 我最喜欢的颜色是 " +F[0]+ " 。 " )
运行代码结果如下:
二、修改、添加和删除元素
1.修改列表元素
要修改列表元素,可指定 列表名 和要修改的 元素的索引 , 再指定该元素的新值 。 【 列表名[索引]=新值】
1 # 1.修改列表元素: 2 F=[ ' red ' , ' blue ' , ' green ' , ' yellow ' ] 3 print (F) 4 F[2]= " black " # 列表名[索引]=新值 5 print (F)
代码运行结果:
2. 添加列表元素
(1)在列表末尾添加元素:使用方法.append()。可创建一个空列表,再使用一系列的append()语句添加元素。 【 列表.append(值)】
(2)在列表中插入元素:使用方法.insert() 在列表任何位置添加新元素。 【 列表.insert(索引,值)】。 要特别注意当索引为负值时插入的位置。
1 # 2.添加列表元素 2 A=[90,80, ' green ' ] 3 print (A) 4 # (1)在列表末尾添加元素 5 A.append(100) # 列表名.append(值) 6 print (A) 7 # (2)在列表中插入元素 8 A.insert(1,20.6) # 列表名.insert(索引,值) 9 print (A) 10 A.insert(-1,55) # 注意:列表.insert(索引 = -1, 值)时,当索引 = 负数时,是从倒数倒数第二位开始插入。 11 print (A)
代码运行结果:
3.删除列表元素
(1)使用del语句删除:前提是知道索引。 【 del 列表[索引]】
(2)使用方法.pop()删除:方法pop()可删除列表元素,并接着使用它。 方法中无参数时,默认删除列表末尾元素。 【 列表.pop(索引)】
(3)根据值删除元素:不知道元素索引,知道值,使用.remove()方法删除,使用remove()从列表中删除元素时,也可接着使用它的值。 【 列表.remove(值)】
1 # 3.删除列表元素: 2 B=[ " C# " , " C++ " , " python " , " java " , " GIS " , " RS " , " WebGIS " ] 3 print (B) 4 5 # (1)使用del语句删除 6 del B[1] # del 列表[索引] 7 print (B) 8 9 # (2)使用方法pop()删除 10 B.pop() # 方法中无参数时,默认删除列表末尾元素。列表.pop() 11 print (B) 12 b1=B.pop() # 使用方法pop()删除列表元素时,可以接着使用它。所以将其赋值给变量f1 13 print (b1) 14 print (B) 15 B.pop(0) # 删除指定位置元素。列表.pop(索引) 16 print (B) 17 18 # (3)根据值删除:不知索引,使用方法 .remove() 19 C=[11,22,33,44,55,66 ] 20 print (C) 21 C.remove(33 ) 22 print (C) 23 mm=66 # 使用remove()从列表中删除元素时,也可接着使用它的值。但是它的使用与.pop()不同,不能使用变量=列表.remove(),而是命名变量=列表元素 24 C.remove(mm) 25 print (C) 26 print ( " That man is " +str(mm)+ " years old. " ) # 要用str()将mm转为字符串输出,不然会报错:TypeError: can only concatenate str (not "int") to str
代码运行结果:
三、组织列表
1. 使用方法 .sort()对列表进行 永久性排序
方法.sort() 按字母顺序排列永久改变列表顺序,如果要按字母顺序相反方向排列元素,则需向 方法 中传递参数 reverse=True 。 【列表.sort()】或【列表.sort(reverse=True)】
1 # 使用方法 sort()对列表进行永久性排序 2 Alist1=[ ' Python ' , ' 123 ' , ' WebGIS ' , ' Cnblogs ' ] 3 print (Alist1) 4 Alist1.sort() # 降序排列 5 print (Alist1) 6 Alist2=[ ' Python ' , ' 123 ' , ' WebGIS ' , ' Cnblogs ' ] 7 Alist2.sort(reverse=True) # 升序排列 8 print (Alist2)
代码运行结果:
2. 使用 函数 sorted() 对列表进行 临时排序
函数sorted()按字母顺序临时改变列表顺序,如果要按字母顺序相反方向排列元素,则需向 函数 中传递参数 reverse=True 。 【sorted(列表)】或【sorted(列表,reverse=True)】
注意:临时排序与永久排序不一样:临时排序定义列表后,不能【sorted(列表)】再【print(列表)】。因为是临时排序,直接【print(列表)】会输出原列表。
1 # 使用函数 sorted()对列表进行临时性排序 2 print ( " 降序排列 " ) 3 Alist1=[ ' 123 ' , ' Cnblogs ' , ' Python ' , ' WebGIS ' , ' B ' ] # 定义列表 4 print (Alist1) # 输出原列表 5 print (sorted(Alist1)) # 临时降序排序 6 print (Alist1) # 再次输出列表,与原列表相同 7 8 print ( " \n升序排列 " ) 9 Alist2=[ ' Python ' , ' 123 ' , ' WebGIS ' , ' Cnblogs ' ] # 定义列表 10 print (Alist2) # 输出原本列表 11 print (sorted(Alist2,reverse=True)) # 输出临时升序排列!注意反向排序表达! 12 print (Alist2) # 再次输出列表,与原列表相同 13 # 注意临时排序与永久排序不一样:临时排序定义列表后,不能【sorted(列表)】再【print(列表)】。因为是临时排序,直接【print(列表)】会输出原列表。
代码运行结果:
-
拓展一:字符编码排序
python默认编码:
python 2.x默认的字符编码是ASCII,默认的文件编码也是ASCII。
python 3.x默认的字符编码是unicode,默认的文件编码是utf-8。
两种编码方式排序相同:以十进制表示部分字符编码:
0~9:48~57
A~Z:69~90
a~z:97~122
-
拓展二:函数和方法形式上的区别
(1)方法:【变量.方法(其他参数)】,其他参数可无。例如:Alist.sort(reverse=True)
3. 倒着打印列表
注意:.reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排 列顺序
1 D=[ ' a ' , ' c ' , ' 100 ' , ' e ' , ' A ' ] 2 print (D) # 原列表 3 D.reverse() #第一次反转 4 print (D) 5 D.reverse() #第二次反转,变回原列表 6 print (D)
代码运行结果:
4. 确定列表的长度
使用函数len()获取列表长度。 【len(列表)】
注意:python计算元素时从1开始,要与列表索引区别开。
1 D=[ ' a ' , ' c ' , ' 100 ' , ' e ' , ' A ' ] 2 print (len(D))
代码运行结果: