ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ---- # 列表 (相当于PHP里的索引数组) 参考菜鸟手册 <a href="https://www.runoob.com/python3/python3-list.html" target="_blank">https://www.runoob.com/python3/python3-list.html</a> - 相当里php里的数组 - 序列中的每个元素都分配一个数字 - 它的位置(索引),第一个索引是0,第二个索引是1,依此类推。 ```python list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print ("list1[0]: ", list1[0]) #list1[0]: Google print ("list2[1:5]: ", list2[1:5]) #list2[1:5]: [2, 3, 4, 5] ``` ## 列表的添加 列表相当于php中的一维数组,里面元素是有序的,可以重复的. 1. 向列表的最后面追加单元数据 列表的追加(向数组的右边追加) `append()`方法 ```python list1 = ['Google', 'Runoob', 'Taobao'] list1.append('Baidu') print ("更新后的列表 : ", list1) #['Google', 'Runoob', 'Taobao', 'Baidu'] ``` 2. 向数组后面拼接元素 ```python list1 = ['Google', 'Runoob', 'Taobao'] n = ['a','b','c'] list1 += n print(list1) #['Google', 'Runoob', 'Taobao', 'a', 'b', 'c'] ``` 3. `insert()` 函数用于向列表指点任意列表的插入值。 >`insert()`方法 `list.insert(index, obj)` ```python list1 = ['Google', 'Runoob', 'Taobao'] list1.insert(1, 'Baidu') print ('列表插入元素后为 : ', list1) #['Google', 'baidu', 'Runoob', 'Taobao'] ``` 4. `extend()` 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。 **extend()方法语法:** >list.extend(seq) ```python list1 = ['Google', 'Runoob', 'Taobao'] list2=list(range(5)) # 创建 0-4 的列表 list1.extend(list2) # 扩展列表 print ("扩展后的列表:", list1) # ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4] ``` 5.extend 与 append 的区别 - extend 与 append 方法的相似之处在于都是将新接收到参数放置到已有列表的后面。 - 而 extend 方法只能接收 list,且把这个 list 中的每个元素添加到原 list 中。 - 而 append 方法可以接收任意数据类型的参数,并且简单地追加到 list 尾部。 ```python list1 = ['Google', 'Runoob', 'Taobao'] list1.extend(['a','b']) # 扩展列表 print (list1) # ['Google', 'Runoob', 'Taobao', 'a', 'b'] list2 = ['Google', 'Runoob', 'Taobao'] list2.append(['a','b']) # 扩展列表 print (list2) # ['Google', 'Runoob', 'Taobao', ['a', 'b']] ``` <a href="https://www.runoob.com/python3/python3-att-list-extend.html" target="_blank">https://www.runoob.com/python3/python3-att-list-extend.html</a> ## 列表的删除 >方法一:可以使用 del 语句来删除列表的指定元素,如下实例: ```python list = ['Google', 'Runoob', 1997, 2000] print ("原始列表 : ", list) #原始列表 : ['Google', 'Runoob', 1997, 2000] del list[2] print ("删除第三个元素 : ", list) #删除第三个元素 : ['Google', 'Runoob', 2000] ``` >方法二:`remove()` **描述** remove() 函数用于移除列表中某个值的第一个匹配项。 **语法** remove()方法语法: `list.remove(obj)` ```python list1 = ['Google', 'Runoob', 'Taobao', 'Baidu'] list1.remove('Taobao') print ("列表现在为 : ", list1) #列表现在为 : ['Google', 'Runoob', 'Baidu'] list1.remove('Baidu') print ("列表现在为 : ", list1) #列表现在为 : ['Google', 'Runoob'] ``` >方法三:pop(列表索引) **描述** pop(列表索引) 函数用于移除列表中某索引的值 不列索引,默认删除最后一个元素 ```python list = ['Google', 'Runoob', 1997, 2000] list.pop(2) print(list) #['Google', 'Runoob', 2000] ``` ## 列表的更新 指定列表里元素的索引下标重新赋值 >你可以对列表的数据项进行修改或更新,如下所示: >指定列表里元素的索引下标重新赋值 ```python list = ['Google', 'Runoob', 1997, 2000] print ("第三个元素为 : ", list[2]) #第三个元素为 : 1997 list[2] = 2001 print ("更新后的第三个元素为 : ", list[2]) #更新后的第三个元素为 : 2001 ``` ## 列表截取(切片)与拼接 >Python的列表截取与字符串操作类型. **如下所示:** >L=['Google', 'Runoob', 'Taobao'] Python 表达式 | 结果 | 描述 ---|---|--- L[2] | 'Taobao' | 读取第三个元素 L[-2] | Runoob' | 从右侧开始读取倒数第二个元素: count from the right L[1:] | ['Runoob', 'Taobao'] | 输出从第二个元素开始后的所有元素 L[:] | ['Google', 'Runoob', 'Taobao'] | 输出所有元素 >拼接 ```python list1 = ['Google', 'Runoob', 'Taobao'] n = ['a','b','c'] list1 += n print(list1) #['Google', 'Runoob', 'Taobao', 'a', 'b', 'c'] ``` ## 嵌套列表 >把两个一维列表嵌套成一个两维列表 ```python a = ['Google', 'Runoob', 'Taobao'] b = ['a','b','c'] c = [a,b] print(c) #[['Google', 'Runoob', 'Taobao'], ['a', 'b', 'c']] ``` ## 列表的赋值 >copy()和直接=赋值的区别: 1. 使用=直接赋值,是引用赋值,更改一个,另一个同样会变 1. copy() 则顾名思义,复制一个副本,原值和新复制的变量互不影响 例子: <a href="https://www.runoob.com/python3/python3-att-list-copy.html" target="_blank ">https://www.runoob.com/python3/python3-att-list-copy.html</a> ```python # 列表的传值赋值 (原列表a数据值改变,不影响赋值的新列表b) a=[0,1,2,3,4,5] # 列表的传值赋值的几种方法 # b=a.copy() #copy()函数传值赋值 # b=a[:] #切片传值赋值 b=a[0:] #切片传值赋值 a[0] = 6 print(a) #[6, 1, 2, 3, 4, 5] print(b) #[0, 1, 2, 3, 4, 5] # 列表的引用赋值 (原列表a和新列表c指的是同一个列表在内存里的地址,可以理解为同一个列表起的不同的别名) # 原列表c数据值改变,新列表b的值也改变 c=[0,1,2,3,4,5] d=c c[0] = 6 print(c) #[6, 1, 2, 3, 4, 5] print(d) #[6, 1, 2, 3, 4, 5] ``` ## 列表的循环 ```python test_list = [1,2,3,['a','b','c']] for temp in test_list: if type(temp) == list: for li in temp: print(li) else: print(temp) ``` 打印: ``` 1 2 3 a b c ``` ## 字符串转换为列表 ```python a = 'hello word' b = list(a) print(b) # 打印: ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'd'] ```