51学通信论坛2017新版

标题: 列表的基本操作 [打印本页]

作者: admin    时间: 2018-8-5 23:02
标题: 列表的基本操作
列表的基本操作:
  1. #!/usr/bin/python3.6
  2. ls=[123,'123',[123,'123'],123]
  3. print(ls) #列表没有去重,也是有序的。print出来不变。结果还是:[123,'123',[123,'123'],123]
  4. print(list('列表可以由字符串生成')) #list()将字符串转换为列表。结果是:['列', '表', '可', '以', '由', '字', '符', '串', '生', '成']
  5. print(list()) #list()生成一个空列表。结果是[]
  6. '''
  7. 1.1 列表的索引,正向递增从0开始,反向递减从-1开始。
  8. '''
  9. print(ls[3]) #结果是123
  10. print(ls[-2]) #取出-2位置的元素,是一个列表。
  11. #ls[5]执行会报错list index our of range.因为5超出范围了。
  12. for i in ls:
  13.     print(i*2) #如果是数字,则乘以2,如果是字符串则复制一遍。
  14. '''
  15. 上述for循环的执行结果如下;
  16. 246
  17. 123123
  18. [123, '123', 123, '123']
  19. 246
  20. '''
  21. '''
  22. 1.2 列表的切片有两种。列表[N:M]或列表[N:M:K]。K表示步长。
  23. 要求N<M,如-3<-1或1<3,否则如果N>M,则返回空列表。
  24. 冒号:在Python中表示区间,如切片。表示枚举用逗号,如列表。
  25. '''
  26. print(ls[1:4]) #第2个元素编号为1,第4个元素编号为3,。因为会取到3个值。结果:['123',[123,'123'],123]
  27. print(ls[-1:-3])#因为N大于M,返回空列表。结果:[]
  28. print(ls[-3:-1]) #从-3取到倒数第2个。结果:['123',[123,'123']]
  29. print(ls[0:4:2]) #按步长为2全部取出。结果:[123,[123,'123']]
  30. print(ls[::]) #复制一份列表,和原列表完全相同。也可以赋给变量。结果:[123,'123',[123,'123'],123]
  31. print(ls[1:]) #从编号为1开始取,一直取到最后。结果:['123',[123,'123'],123]
  32. print(ls[1::2]) #从编号为1开始取,一直取到最后,步长为2。结果:['123',123]
  33. ls1=[5,6,7,8,9,1,2,3,4]
  34. '''
  35. 1.3 列表的操作:
  36. min、max、list()、len、+、append、insert、clear、pop、remove、reverse、copy、del等。
  37. 列表的方法主要针对列表变量,实现列表的元素的增、删、改等功能。
  38. '''
  39. print(min(ls1)) #返回列表最小值,结果:[1]
  40. print(max(ls1)) #返回列表最大值,结果:[9]
  41. ls2=['af','ae','ad','ac','az','aw','bz','bw','bi']
  42. print(min(ls2)) #返回列表最小值,结果:['ac']
  43. print(max(ls2)) #返回列表最大值,结果:['bz']
  44. #print(min(ls)) 这个操作会报错,不同类型无法比较。
  45. #print(max(ls)) 这个操作会报错,不同类型无法比较。
  46. print(list({'aa','ab','ac','ad'}))  #将集合转换为列表。结果是:['aa','ab','ac','ad']
  47. print(list({'name':'zhangsan','city':'beijing','phone no':'13912345678'})) #将字典转换成列表。结果:['name','city','phone no']
  48. ls3=[1,2,3,4,5]
  49. ls3.append(6)
  50. print(ls3) #追加6到末尾。结果:[1,2,3,4,5,6]
  51. ls3.insert(1,7)
  52. print(ls3)  #在编号为1的位置插入元素值7。结果:[1,7,2,3,4,5,6]
  53. ls3.pop(3)
  54. print(ls3)  #将编号为3的元素删除。结果:[1,7,2,4,5,6]
  55. ls3.remove(6)
  56. print(ls3)  #将列表中第一个出现的元素6删除。注意,6不是元素编号,而且只删第一个出现的6。结果:[1,7,2,4,5]
  57. ls3.reverse()
  58. print(ls3) #reverse后面没有参数,反向处理。结果:[5,4,2,7,1]
  59. ls4=ls3.copy()
  60. print(ls4) #复制生成一个新列表。结果:[5,4,2,7,1]
  61. del ls3[0]
  62. print(ls3) #删除列表中编号为0的元素。结果:[4,2,7,1]
  63. del ls3[1:2] #删除列表编号从1到2的元素(不含2)。结果:[4,7,1]
  64. print(ls3)
  65. del ls3[0:-1:2]
  66. print(ls3) #从列表编号为0开始到-1结束,步长为2的元素都删除。结果:[7,1]
  67. ls3.clear()
  68. print(ls3) #将列表清空。结果:[]
  69. print(ls2+ls4) #将列表合并生成新列表。结果:['af','ae','ad','ac','az','aw','bz','bw','bi',5,4,2,7,1]
  70. '''
  71. 注意,如果不使用copy()方法复制列表,而使用变量赋值创建新列表,实际上只创建了一个列表的别名。
  72. 当原列表被clear时,新列表的元素也被清空了。如下:
  73. '''
  74. ls5=[1,2,3,4,5,6]
  75. newls5=ls5
  76. ls5.clear()
  77. print(newls5) #会发现newls5的元素被清空了,因为它只是ls5的一个别名。输出为[]。
  78. '''
  79. 列表元素的重新赋值用=就可以。支持切片操作的赋值。修改内容可以不等长,但遵循“多增少减"的原则。
  80. '''
  81. ls6=[1,2,3,4,5,6]
  82. ls6[1]=88
  83. print(ls6) #将编号为1的元素值改为88。结果:[1,88,3,4,5,6]
  84. ls6[0:5]=[99]
  85. print(ls6) #将编号从0到5(不含5)的元素合并,值改为99。结果:[99,6]
复制代码
结果是:
  1. [123, '123', [123, '123'], 123]
  2. ['列', '表', '可', '以', '由', '字', '符', '串', '生', '成']
  3. []
  4. 123
  5. [123, '123']
  6. 246
  7. 123123
  8. [123, '123', 123, '123']
  9. 246
  10. ['123', [123, '123'], 123]
  11. []
  12. ['123', [123, '123']]
  13. [123, [123, '123']]
  14. [123, '123', [123, '123'], 123]
  15. ['123', [123, '123'], 123]
  16. ['123', 123]
  17. 1
  18. 9
  19. ac
  20. bz
  21. ['ab', 'ac', 'ad', 'aa']
  22. ['name', 'city', 'phone no']
  23. [1, 2, 3, 4, 5, 6]
  24. [1, 7, 2, 3, 4, 5, 6]
  25. [1, 7, 2, 4, 5, 6]
  26. [1, 7, 2, 4, 5]
  27. [5, 4, 2, 7, 1]
  28. [5, 4, 2, 7, 1]
  29. [4, 2, 7, 1]
  30. [4, 7, 1]
  31. [7, 1]
  32. []
  33. ['af', 'ae', 'ad', 'ac', 'az', 'aw', 'bz', 'bw', 'bi', 5, 4, 2, 7, 1]
  34. []
  35. [1, 88, 3, 4, 5, 6]
  36. [99, 6]
复制代码





欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3