51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4655|回复: 0
打印 上一主题 下一主题

[第6章:组合数据类型] 列表的基本操作

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2018-8-5 23:02:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    列表的基本操作:
    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]
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 15:49 , Processed in 0.061384 second(s), 32 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表