当前位置:   article > 正文

Python之列表的基本操作_python列表的基本操作

python列表的基本操作

目录

1、列表的创建与遍历

2、添加元素

3、删除元素

 4、分片赋值

 5、列表排序

 完整代码:


本文的代码体为一个完整体,即最开始的列表的创建与遍历中创建的列表,为后续操作的主列表。如需从总体观看全部代码,请移步到文章最后面。

1、列表的创建与遍历

        与整数和字符串不同,列表要处理一组数据。因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象,只会对原有列表生成一个新的引用。

  1. #创建列表
  2. list =[1,2,3,4,5]
  3. list2=list
  4. print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
  5. list[0]=0
  6. print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
  7. print("====================================")
  8. length=len(list)#获取列表长度
  9. #遍历
  10. i=0
  11. #为了方便后续操作的观察,这里采用不换行输出
  12. while(i<length):
  13. if (i < length-1):
  14. print(list[i], end=',')
  15. else:
  16. print(list[i],end='')
  17. print()
  18. i+=1
  19. print("====================================")
  20. for x in list:
  21. if (x <length):
  22. print(x, end=',')
  23. else:
  24. print(x,end='')
  25. print()
  26. # print(x)
  27. print("====================================")

2、添加元素

        列表可以使用append()、extend()或insert()方法来添加元素

2.1、append()方法:在列表末尾添加新的元素

语法格式:list.append(obj)

其中,list表示列表,obj表示添加到列表末尾的对象

  1. #在列表末尾添加元素
  2. list.append(6)
  3. print(list) ##[0, 2, 3, 4, 5, 6]

 2.2、extend()方法:

        在列表末尾一次性添加另一个序列中的多个值(用新列表扩展原来的列表)

extend和append不同的是:如果数据是一个序列,则将这个序列的数据逐一添加到列表,即将数据拆开再添加。

语法格式:list.extend(seq)

其中,list表示列表,seq表示添加到列表末尾的序列

  1. #在列表末尾一次性添加另一个序列中的多个值
  2. list3=[7,8]
  3. list.extend(list3)
  4. print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
  5. l=[1,2]
  6. test='abc'
  7. l.extend(test)
  8. print(l) #[1,2,a,b,c]

2.3、insert()方法:

        将指定对象插入到列表的指定位置

语法格式:list.insert(index,obj)

其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的对象 

  1. #将元素添加到指定位置,例:在索引位置为1的地方插入1
  2. list.insert(1,1)
  3. print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]

3、删除元素

        在列表中,删除元素的常用方法有:del命令、pop()方法和remove()方法

3.1、del命令:根据索引删除列表中的元素

  1. #根据索引删除元素,例:删除索引位置为0的元素
  2. del list[0]
  3. print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
  4. #使用分片的方式输出列表中的元素
  5. del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
  6. print(list) #[1, 2, 3, 4, 5, 8]

 3.2、pop()方法:

        根据索引删除列表中的元素,并返回该元素的值

语法格式:list.pop([index])

其中,list表示列表。index表示删除列表元素的索引值,为可选参数,缺省时为-1,删除列表中的最后一个元素。

  1. #根据索引删除列表中的元素,并返回该元素的值
  2. print(list.pop(5)) #8
  3. print(list) #[1, 2, 3, 4, 5]
  4. #如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
  5. # print(list.pop())
  6. # print(list)

 3.3、remove()方法:

        remove()方法只能删除列表中某个值的第一个匹配项,如果要删除所有匹配的元素就需要搭配循环语句实现。

语法格式:list.remove(obj)

  1. #删除某个值的第一个匹配值
  2. list.remove(3)
  3. print(list) #[1, 2, 4, 5]

 4、分片赋值

        分片赋值就是以分片的形式给列表赋值,可以一次为多个元素赋值

  1. #替换索引从1包括1开始到最后的元素
  2. list[1:]=[3,6,9]
  3. print(list) #[1, 3, 6, 9]

 分片赋值还可以在不替换任何原有元素的情况下插入新的元素

  1. #在索引为2的位置插入列表[4,5]
  2. #[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
  3. list[2:1]=[4,5]
  4. print(list) #[1, 3, 4, 5, 6, 9]

 分片赋值也可以删除元素

  1. #删除元素
  2. num=[1,2,3,4,5,6]
  3. print(num) #[1, 2, 3, 4, 5, 6]
  4. num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
  5. print(num) #[1, 6]

 5、列表排序

        将列表中的元素排序的方法有3种,分别是reverse()方法、sort()方法和sorted()函数

5.1、reverse()方法:

        将列表中的元素反向存放

语法格式:list.reverse()

  1. #将列表元素反转
  2. list.reverse()
  3. print(list) #[9, 6, 5, 4, 3, 1]

 5.2、sort()方法:

        将列表中的元素进行排序(默认为升序)

语法格式:list.sort([key=None])[,reverse=False])

其中,list表示列表,key为可选参数,如果指定了该参数,会使用该参数的方法进行排序。reverse为可选参数,表示是否降序排序,缺省时为False

  1. #将列表排序(默认为升序)
  2. list.sort()
  3. print(list) #[1, 3, 4, 5, 6, 9]
  4. #改为降序排序
  5. list.sort(reverse=True)
  6. print(list) #[9, 6, 5, 4, 3, 1]
  7. #按元素长度进行排序(默认升序)
  8. list4=["hello","P","yt","hon"]
  9. list4.sort(key=len)
  10. print(list4) #['P', 'yt', 'hon', 'hello']
  11. #降序
  12. list4.sort(key=len,reverse=True)
  13. print(list4) #['hello', 'hon', 'yt', 'P']

 5.3、sorted()函数:

        与sort()方法不同,内置函数sorted()返回新列表,并不对原列表进行任何修改

语法格式:sorted(iterable[,key=None][,reverse=False])

其中,iterable表示可迭代对象,如列表。参数key和reverse的用法与sort()方法中的相同

  1. #内置函数sorted()返回新列表,不对原列表进行修改
  2. list5=[5,3,4,2,1]
  3. list5_new=sorted(list5)
  4. print(list5==list5_new) # False 列表地址不一致
  5. print(list5) #原列表不变 [5, 3, 4, 2, 1]
  6. print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
  7. #降序
  8. list6=sorted(list5,reverse=True)
  9. print(list6==list5) #False
  10. print(list6) #[5, 4, 3, 2, 1]

 完整代码:

  1. list =[1,2,3,4,5]
  2. list2=list
  3. print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
  4. list[0]=0
  5. print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
  6. print("====================================")
  7. length=len(list)#获取列表长度
  8. #遍历
  9. i=0
  10. #为了方便后续操作的观察,这里采用不换行输出
  11. while(i<length):
  12. if (i < length-1):
  13. print(list[i], end=',')
  14. else:
  15. print(list[i],end='')
  16. print()
  17. i+=1
  18. print("====================================")
  19. for x in list:
  20. if (x <length):
  21. print(x, end=',')
  22. else:
  23. print(x,end='')
  24. print()
  25. # print(x)
  26. print("====================================")
  27. # 添加元素
  28. print("添加元素:")
  29. #在列表末尾添加元素
  30. list.append(6)
  31. print(list) ##[0, 2, 3, 4, 5, 6]
  32. #在列表末尾一次性添加另一个序列中的多个值
  33. list3=[7,8]
  34. list.extend(list3)
  35. print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
  36. #将元素添加到指定位置,例:在索引位置为1的地方插入1
  37. list.insert(1,1)
  38. print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
  39. print("====================================")
  40. #删除元素
  41. print("删除元素:")
  42. #根据索引删除元素,例:删除索引位置为0的元素
  43. del list[0]
  44. print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
  45. #使用分片的方式输出列表中的元素
  46. del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
  47. print(list) #[1, 2, 3, 4, 5, 8]
  48. #根据索引删除列表中的元素,并返回该元素的值
  49. print(list.pop(5)) #8
  50. print(list) #[1, 2, 3, 4, 5]
  51. #如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
  52. # print(list.pop())
  53. # print(list)
  54. #删除某个值的第一个匹配值
  55. list.remove(3)
  56. print(list) #[1, 2, 4, 5]
  57. print("====================================")
  58. #分片赋值
  59. print("分片赋值:")
  60. #替换索引从1包括1开始到最后的元素
  61. list[1:]=[3,6,9]
  62. print(list) #[1, 3, 6, 9]
  63. #在索引为2的位置插入列表[4,5]
  64. #[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
  65. list[2:1]=[4,5]
  66. print(list) #[1, 3, 4, 5, 6, 9]
  67. #删除元素
  68. num=[1,2,3,4,5,6]
  69. print(num) #[1, 2, 3, 4, 5, 6]
  70. num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
  71. print(num) #[1, 6]
  72. print("====================================")
  73. #列表排序
  74. print("排序:")
  75. #将列表元素反转
  76. list.reverse()
  77. print(list) #[9, 6, 5, 4, 3, 1]
  78. #将列表排序(默认为升序)
  79. list.sort()
  80. print(list) #[1, 3, 4, 5, 6, 9]
  81. #改为降序排序
  82. list.sort(reverse=True)
  83. print(list) #[9, 6, 5, 4, 3, 1]
  84. #按元素长度进行排序(默认升序)
  85. list4=["hello","P","yt","hon"]
  86. list4.sort(key=len)
  87. print(list4) #['P', 'yt', 'hon', 'hello']
  88. #降序
  89. list4.sort(key=len,reverse=True)
  90. print(list4) #['hello', 'hon', 'yt', 'P']
  91. print("---------------------------------------")
  92. #内置函数sorted()返回新列表,不对原列表进行修改
  93. list5=[5,3,4,2,1]
  94. list5_new=sorted(list5)
  95. print(list5==list5_new) # False 列表地址不一致
  96. print(list5) #原列表不变 [5, 3, 4, 2, 1]
  97. print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
  98. #降序
  99. list6=sorted(list5,reverse=True)
  100. print(list6==list5) #False
  101. print(list6) #[5, 4, 3, 2, 1]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/535236
推荐阅读
相关标签
  

闽ICP备14008679号