老莫的笔记本  
  
查看: 119|回复: 0

常见列表操作

[复制链接]

664

主题

880

帖子

5153

积分

超级版主

Rank: 8Rank: 8

积分
5153
发表于 2023-8-15 17:34:46 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2023-8-16 16:09 编辑



  1. def d(q):
  2.     print(q)


  3. name = ['大力', '出', '奇迹', '王三岁', '乖乖女', '777']

  4. # 1、 向列表里面加元素;
  5. # append 对于列表的操作主要实现的是在特定的列表最后添加一个元素
  6. # extend 对于特定列表的扩展和增长,可以一次添加多个元素,不过也只能添加在列表的最后(在屁股后面再接一个数组列表);
  7. # insert 指定位置添加特定的元素,注意 两个参数 第一个是下标 从0 开始

  8. # name.append('真好看')
  9. # name.extend(['真6'])
  10. # name.insert(6,'yuyu')
  11. # d(name)

  12. #
  13. # 2、 删减列表中的一些元素;
  14. # remove的作用是移除掉列表m里面的特定元素;
  15. # del m[n] 移除指定下标 (移除之后下标会重组)
  16. # pop 最后一个元素返回,并且在此基础上进行删除掉(原来的列表发生了改变)

  17. # name.remove('出')
  18. # del name[3]
  19. # name.pop()
  20. # d(name)

  21. #
  22. # 3、 获取列表里面的特定元素;
  23. # d(name[2])

  24. #
  25. # 4、 列表分片;
  26. # print(name[::-4])
  27. #

  28. # 5、 常用的列表操作符;
  29. # +:它主要实现的是多个列表之间的拼接常见的列表操作符 (数组合并,但是不存在去重)
  30. #
  31. # *:主要实现的是列表的复制和添加 (简单的乘法 会变成很长一个列表)
  32. #
  33. # 比较>,<:主要进行数据型列表的元素比较  (比较是比较列表中的每一个元素 对另一个列表中的对应下标每一个元素的比较)
  34. #
  35. # and等:逻辑运算符,可以进行列表之间的逻辑判断
  36. #
  37. # name2 = ['大力', '出', '奇迹', '王三岁', '乖乖女', '666']
  38. # d(name < name2)
  39. # d(name + name2)
  40. # d(name*4)

  41. # 6、 其他常见列表操作函数
  42. # m.count(A):输出元素A在列表m里面出现的次数
  43. # m.index(A):输出元素A在列表m里面的索引位置号
  44. # m.index(A,a,b):对于列表m里面包含多个元素A时,输出在列表m索引号a-b之间的特定索引号
  45. # m.reverse():将列表m进行前后的翻转,前变后,后变前 (这个不是返回值 也不存在n=m.reverse 这个表达式是不对的 因为变的是m本身,无返回值)
  46. # m.sort():将列表m里面地数据进行从小到大的排列(字符串有字符串的比较 ,  如果全是数字那就是按照数字进行比较 )
  47. # m.sort(reverse=True):将列表m里面地数据进行从大到小的排列
  48. # t = [1, 3, 4, 2, 8, 6, 7, 7, 888, 26, 9, 8, 2]
  49. # d(t)
  50. # d(t.count(8))
  51. # d(t.index(8))
  52. # d(t.index(8, 6, len(t)))
  53. # t.reverse()
  54. # t.sort()
  55. # # [1, 2, 2, 3, 4, 6, 7, 7, 8, 8, 9, 26, 888]
  56. #
  57. # t2 = ['1', '12', '6', '16']
  58. # t2.sort()
  59. # # ['1', '12', '16', '6']
  60. #
  61. # # t2.sort(reverse=True)
  62. # # ['6', '16', '12', '1']
  63. # d(t2)

  64. # 7、 列表的拷贝
  65. # 1) 深拷贝:
  66. #
  67. # M=[A,b,a,c]
  68. #
  69. # N=M[:]
  70. #
  71. # 2) 浅拷贝:
  72. #
  73. # N=M

  74. # n2 = name
  75. # d(name)
  76. # ['大力', '出', '奇迹', '王三岁', '乖乖女', '777']
  77. # n2.sort()
  78. # d(name)
  79. # ['777', '乖乖女', '出', '大力', '奇迹', '王三岁']
  80. #  得出结论 如果是直接赋值 浅拷贝,当新列表改动时,原列表也会受到影响 所以 用深拷贝


  81. # 闲着无聊测试下方结论
  82. # name2 = ['大力', '出', '奇迹', '王三岁', '乖乖女']
  83. # name3 = name
  84. # name3[::-4]
  85. # print(name3)
  86. # print(id(name), id(name3))
  87. # print(id(name[::-4]), id(name), id(name2))
  88. # if id(name) == id(name2):
  89. #     print('如果name2 = name 这种赋值的写法 则两个地址是一样的')
  90. # else:
  91. #     print('得出结论:相同变量的列表指向的地址并不一样')
  92. #
  93. # if id(name2[0]) == id(name3[0]) :
  94. #     print('得出结论:虽然列表地址不一样 但是里面的字符串地址是相同的 仍在变量池中')
  95. #     print(id(name2[0]), id(name3[0]))
  96. # http://www.taodudu.cc/news/show-1889899.html?action=onClick

复制代码
回复

使用道具 举报

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

本版积分规则

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