元组简介

  • 元组表现形式tuple
  • 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
  • 使用()创建元素
  • 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
  • 元组解包指将元组当中的每一个元素都赋值给一个变量
  • 与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
  • 所谓元组的不可变指的是元组所指向的内存中的内容不可变。


  1. # 元组的表达形式 () tuple
  2. # 元组的创建与访问
  3. tuple1 = (1, 2, 3, 4, 5)
  4. print(tuple1, type(tuple1))
  5. print(tuple1[2])
  6. print(tuple1[2::])
  7. tup2 = ('Google', 'Runoob', 1997, 2000)
  8. tup3 = "a", "b", "c", "d" # 不需要括号也可以
  9. print(tup2)
  10. print(tup3, type(tup3))
  11. -------------------
  12. (1, 2, 3, 4, 5) <class 'tuple'>
  13. 3
  14. (3, 4, 5)
  15. ('Google', 'Runoob', 1997, 2000)
  16. ('a', 'b', 'c', 'd') <class 'tuple'>
  17. =========================================
  18. # 如果元组不是一个空元祖,那么它必须得有一个逗号, 否则括号会被当作运算符使用
  19. tuple2 = 10,
  20. tuple3 = (10)
  21. print(tuple2, type(tuple2))
  22. print(tuple3, type(tuple3))
  23. ---------------
  24. (10,) <class 'tuple'>
  25. 10 <class 'int'>
  26. ===========================================
  27. #元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
  28. tup1 = (12, 34.56)
  29. tup2 = ('abc', 'xyz')
  30. # 以下修改元组元素操作是非法的。
  31. # tup1[0] = 100
  32. # 创建一个新的元组
  33. tup3 = tup1 + tup2
  34. print(tup3)
  35. ---------------------
  36. (12, 34.56, 'abc', 'xyz')
  37. =========================================================
  38. # 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
  39. tup = ('Google', 'Runoob', 1997, 2000)
  40. print(tup)
  41. del tup
  42. print("删除后的元组 tup : ")
  43. print(tup)
  44. ------------------
  45. NameError: name 'tup' is not defined
  46. ('Google', 'Runoob', 1997, 2000)
  47. 删除后的元组 tup :
  48. 进程已结束,退出代码1
  49. ===============================================
  50. 元组的运算
  51. print(len((1, 2, 3)))
  52. print((1, 2, 3) + (4, 5, 6))
  53. print(('Hi!',) * 4)
  54. print(3 in (1, 2, 3))
  55. for x in (1, 2, 3):
  56. print(x,)
  57. -----------------------------
  58. 3
  59. (1, 2, 3, 4, 5, 6)
  60. ('Hi!', 'Hi!', 'Hi!', 'Hi!')
  61. True
  62. 1
  63. 2
  64. 3
  65. ========================================
  66. 元组内置函数
  67. len(tuple) #计算元组元素个数
  68. max(tuple) #返回元组中元素最大值
  69. min(tuple) #返回元组中元素最小值
  70. tuple(iterable) #将可迭代系列转换为元组
  71. list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
  72. tuple1=tuple(list1)
  73. print(tuple1)
  74. -----------------------------
  75. ('Google', 'Taobao', 'Runoob', 'Baidu')
  76. ==================================
  77. 元组不可变
  78. tup = ('r', 'u', 'n', 'o', 'o', 'b')
  79. #tup[0] = 'g' # 不支持修改元素
  80. print(id(tup)) # 查看内存地址
  81. tup = (1,2,3)
  82. print(id(tup))
  83. -------------------
  84. 2956170277600
  85. 2956170819008


字典简介

字典的基本介绍

  • 字典属于一种新的数据结构称为映射(mapping)
  • 字典的作用和列表类似,都是用来存储对象的容器
  • 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
  • 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
  • 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
  • 字典我们也称之为键值对(key-value)结构
  • 字典的每个键值 key-value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
  • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
  • 创建一个有数据的字典 语法 {key:value}, 例如

    1. d = {key1 : value1, key2 : value2, key3 : value3 }
  • 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple….)

  • 字典的键是不能重复的,如果出现重复的后面的会替换前面的 ```python

    字典的创建

    1. 用{}创建

dict2 = { ‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’, ‘name’: ‘欧阳锋’, ‘skill’: ‘蛤蟆功’ } print(dict2, type(dict2))

获取value, 直接用 dict[key]

print(dict2[‘skill’])

{‘name’: ‘欧阳锋’, ‘age’: 18, ‘sex’: ‘男’, ‘skill’: ‘蛤蟆功’}

蛤蟆功

2. 使用dict类去创建字典

dict1 = dict(name=’郭靖’, age=18, sex=’男’)

print(dict1, type(dict1))

{‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’}

3. 使用dict去创建

python2 有序字典 orderdict 无序字典

需要dict()括号里的数据是属于一种双值子序列的形式

双值序列 [1, 2]

子序列 (’a’)

双值子序列: [(1, 2), (3, 4)]

dict2 = dict([(‘name’, ‘郭靖’), (‘age’, 18), (‘sex’, ‘男’)])

print(dict2, type(dict2))

{‘name’: ‘郭靖’, ‘age’: 18, ‘sex’: ‘男’}

  1. <a name="RtAIz"></a>
  2. ### 字典的使用
  3. - dict()函数来创建字典
  4. - get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
  5. - update() 将其他字典的key-value添加到当前的字典当中
  6. - del 删除字典中的key-value
  7. - popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回
  8. - pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
  9. - in, not in 检测的是key
  10. ```python
  11. # in, not in
  12. dict1 = dict(name='郭靖', age=18, sex='男')
  13. # print(len(dict1))
  14. # in, not in 检测的是key
  15. print('name' in dict1)
  16. print(18 in dict1)
  17. ----------------------------
  18. True
  19. False
  20. ================================
  21. # 获取值得方式
  22. # 使用key获取value dict[key] 如果不存在key则会报错
  23. dict1 = dict(name='郭靖', age=18, sex='男')
  24. print(dict1.get('name'))
  25. print(dict1.get('skill'))#如果key不存在,不会报错
  26. -----------------
  27. 郭靖
  28. None
  29. ====================================
  30. # 修改字典
  31. # dict[key] = value
  32. dict1 = dict(name='郭靖', age=18, sex='男')
  33. dict1['name'] = '欧阳锋'
  34. print(dict1)
  35. ------------------
  36. {'name': '欧阳锋', 'age': 18, 'sex': '男'}
  37. =============================================
  38. # dict.setdefault(key, [default]) 向字典中添加key-value
  39. # 如果这个key已经存在于字典中,不会对字典有影响, 如果不存在,则向字典中添加这个key,并设置value, 返回value
  40. dict1 = dict(name='郭靖', age=18, sex='男')
  41. result = dict1.setdefault('name', '欧阳锋')
  42. result = dict1.setdefault('skill', '降龙十八掌')
  43. print(result)
  44. print(dict1)
  45. -----------------------------
  46. 降龙十八掌
  47. {'name': '郭靖', 'age': 18, 'sex': '男', 'skill': '降龙十八掌'}
  48. ==================================================
  49. # dict.update() 将其他字典中的key—value添加到当前字典中
  50. d1 = {'1': 1}
  51. d2 = {'2': 2}
  52. d1.update(d2)
  53. print(d1)
  54. ------------------
  55. {'1': 1, '2': 2}
  56. ==========================================
  57. # 删除
  58. # del 关键字删除,则删除key-value对
  59. dict1 = dict(name='郭靖', age=18, sex='男')
  60. print(dict1)
  61. del dict1['name']
  62. print(dict1)
  63. --------------------------
  64. {'name': '郭靖', 'age': 18, 'sex': '男'}
  65. {'age': 18, 'sex': '男'}
  66. =============================================
  67. # dict.popitem() 随机删除一个键值对,一般都会删除最后一个, 有一个返回值,就是你删除的对象,结果是一个元组
  68. dict1 = dict(name='郭靖', age=18, sex='男')
  69. result = dict1.popitem()
  70. print(result)
  71. print(dict1)
  72. ----------------------
  73. ('sex', '男')
  74. {'name': '郭靖', 'age': 18}
  75. ===================================================
  76. # dict.pop(key,[default]) 根据key来删除键值对, 返回值就是你删除key对应的value
  77. dict1 = dict(name='郭靖', age=18, sex='男')
  78. result1 = dict1.pop('sex')
  79. result2 = dict1.pop('skill', '你删除的这个不存在') # 没有键值,也返回要删的值
  80. print(result1)
  81. print(result2)
  82. print(dict1)
  83. ---------------------
  84. 你删除的这个不存在
  85. {'name': '郭靖', 'age': 18}
  86. ====================================================
  87. # dict.clear() 清空字典
  88. dict1 = dict(name='郭靖', age=18, sex='男')
  89. print(dict1)
  90. dict1.clear()
  91. print(dict1)
  92. -----------------------------------
  93. {'name': '郭靖', 'age': 18, 'sex': '男'}
  94. {}
  95. ================================================
  96. # list.clear() 清空列表
  97. list1 = [1, 2, 3, 4, 5]
  98. print(list1)
  99. list1.clear()
  100. print(list1)
  101. ----------------------------------
  102. [1, 2, 3, 4, 5]
  103. []

copye()

copy() 方法用来对字典进行潜复制
注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的

  1. # 浅拷贝
  2. # 做拷贝的对象必须是可变类型
  3. # 浅拷贝只能对第一层的数据进行拷贝,如果,第一层的数据也是个可变类型,那么浅拷贝无法将这个数据重新拷贝一份形成新的id
  4. dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
  5. dict2 = dict1.copy()
  6. print(id(dict1), id(dict2))
  7. print(id(dict1['list1']), id(dict2['list1']))
  8. -----------------------
  9. 2847754889472 2847756270784
  10. 2847756293568 2847756293568
  11. ==========或者==========
  12. import copy
  13. dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
  14. dict2 = copy.copy(dict1)
  15. print(id(dict1), id(dict2))
  16. print(id(dict1['list1']), id(dict2['list1']))
  17. ----------------
  18. 2979608865088 2979610246528
  19. 2979610277504 2979610277504
  20. ==========================================================
  21. # 深拷贝
  22. # 深拷贝可以对所有的数据全部进行拷贝,形成一个新的id
  23. dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
  24. dict3 = copy.deepcopy(dict1)
  25. print(id(dict1), id(dict3))
  26. print(id(dict1['list1']), id(dict3['list1']))
  27. -----------------------
  28. 2205928008000 2205929466176
  29. 2205929420288 2205929389824

遍历字典

我们主要可以通过3种方式对字典进行遍历

  • keys() 该方法返回字典所有的key
  • values() 该方法返回一个序列 序列中保存有字典的值
  • items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value ```python

    通过key来遍历 dict.keys(),获取的是value

    dict1 = dict(name=’郭靖’, age=18, sex=’男’) for k in dict1.keys(): print(dict1[k])

郭靖 18

通过value来遍历 dict.values()

dict1 = dict(name=’郭靖’, age=18, sex=’男’) for v in dict1.values():

  1. print(v)

郭靖 18

通过一项来进行遍历 dict.items()

dict1 = dict(name=’郭靖’, age=18, sex=’男’) for k, v in dict1.items():

  1. print(k, '=', v)

name = 郭靖 age = 18 sex = 男

  1. <a name="L7RW7"></a>
  2. ### 集合简介
  3. - 集合表现形式set 集合和列表非常相似
  4. - 不同点
  5. - 集合只能存储不可变对象
  6. - 集合中存储的对象是无序的
  7. - 集合不能出现重复元素
  8. - 使用{}来创建集合
  9. - 可以通过set()来将序列和字典转换成集合
  10. - len() 使用len()来获取集合中元素的数量
  11. - add()像集合中添加元素
  12. - update()将一个集合中的元素添加到另一个集合当中
  13. - pop()随机删除集合中的一个元素一般是删除最后一个元素
  14. - remove() 删除集合中指定的元素
  15. - clear() 清空集合
  16. ```python
  17. # set表示集合 {}
  18. # 集合只能存储不可变对象
  19. # s1 = {1, 'abc', [1, 2, 3]}
  20. # print(s1, type(s1))
  21. # 集合中存储的对象是无序的
  22. # s2 = {6, 8, 9, 10}
  23. # print(s2)
  24. # 集合不能出现重复元素 通过这一特性,我们可以来做一个数据去重的效果
  25. # s3 = {1, 2, 3, 4, 1, 2, 3, 4}
  26. # print(s3)
  27. # list1 = [1, 1, 2, 3, 3]
  28. # s4 = set(list1)
  29. # print(s4)
  30. dict1 = {'1': 1}
  31. print(set(dict1))
  32. # s = {} # 创建空集合, 需要用到set()
  33. # s = set()
  34. # print(type(s))

集合的运算

  • & 交集运算
  • | 并集运算
    • 差集运算
  • ^ 亦或集
  • <= 检查一个集合是否是另一个集合的子集
  • < 检查一个集合是否是另一个集合的真子集
  • =检查一个集合是否是另一个集合的超集

  • 检查一个集合是否是另一个集合的真超集 ```python

    集合只能存储不可变对象

    s1 = {1, ‘abc’, [1, 2, 3]} # 报错,列表不能作为集合的元素 print(s1, type(s1))


TypeError: unhashable type: ‘list’

集合中存储的对象是无序的

s2 = {6, 8, 9, 10}

print(s2)

{8, 9, 10, 6} # 无序输出

集合不能出现重复元素 通过这一特性,我们可以来做一个数据去重的效果

s3 = {1, 2, 3, 4, 1, 2, 3, 4} print(s3) list1 = [1, 1, 2, 3, 3] s4 = set(list1)

print(s4)

{1, 2, 3, 4} {1, 2, 3}

====================== dict1 = {‘1’: 1} # 字典转集合 print(set(dict1))


{‘1’}

s = {} # 创建空集合, 需要用到set() s = set()

print(type(s))

==================== set1 = {1, 2, 3, 4} print(len(set1)) # 使用len()来获取集合中元素的数量 set1.add(5) print(set1)# add()像集合中添加元素

set2 = {6, 7} set1.update(set2)

print(set1) # update()将一个集合中的元素添加到另一个集合当中

4 {1, 2, 3, 4, 5}

{1, 2, 3, 4, 5, 6, 7}

set1 = {4, 3, 1, 2} print(set1) set1.pop() #pop()随机删除集合中的一个元素一般是删除最开始一个元素 set1.pop()

print(set1)

{1, 2, 3, 4}

{3, 4}

remove() 删除集合中指定的元素

set1 = {4, 3, 1, 2} set1.remove(3) print(set1)

clear() 清空集合

set1.clear()

print(set1)

{1, 2, 4} set()

集合的运算

s1 = {1, 2, 3, 7, 8} s2 = {4, 5, 6, 7, 8} print(‘s1 = ‘, s1) print(‘s2 = ‘, s2)

& 交集运算

print(‘s1 & s2 =’, s1 & s2)

| 并集运算

print(‘s1 | s2 =’, s1 | s2)

- 差集运算

print(‘s1 - s2 = ‘, s1 - s2)

^ 亦或集

print(‘s1 ^ s2 =’, s1 ^ s2)

s1 = {1, 2, 3, 7, 8} s2 = {4, 5, 6, 7, 8} s1 & s2 = {8, 7} s1 | s2 = {1, 2, 3, 4, 5, 6, 7, 8} s1 - s2 = {1, 2, 3} s1 ^ s2 = {1, 2, 3, 4, 5, 6}

  1. <a name="Yhr7P"></a>
  2. ### 字符串,列表,元组,字典, 集合比较
  3. ```python
  4. #!D:\pythonProject
  5. # -*- coding: utf-8 -*-
  6. # @Time : 2021/1/28 21:58
  7. # @Author : J. Ding
  8. # @File : 字符串,列表,元组,字典, 集合比较.py
  9. str1 = 'abcdef'
  10. str2 = 'GHIJ'
  11. list1 = ['a', 'b', 'c', 'd', 'e', 'f']
  12. list2 = ['G', 'H', 'I', 'J']
  13. tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
  14. tuple2 = ('G', 'H', 'J', 'J')
  15. dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
  16. dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
  17. set1 = {1, 5, 4, 3, 2}
  18. set2 = {6, 7, 4, 5}
  19. print("str1 = 'abcdef'")
  20. print("str2 = 'GHIJ'")
  21. print("list1 = ['a', 'b', 'c', 'd', 'e', 'f']")
  22. print("list2 = ['G', 'H', 'I', 'J']")
  23. print("tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')")
  24. print("tuple2 = ('G', 'H', 'J', 'J')")
  25. print("dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}")
  26. print("dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}")
  27. print('set1 = {1, 5, 4, 3, 2}')
  28. print('set2 = {6, 7, 4, 5}')
  29. #取值
  30. print ('========取值比较========')
  31. print('str1[0] = ', str1[0])
  32. print('list1[0] = ', list1[0])
  33. print('tuple1[0] = ', tuple1[0])
  34. print('dict1.get(0) = ', dict1.get(0))
  35. print('# 集合无序,无法按位取值')
  36. #长度 len()
  37. print('========元素个数比较========')
  38. print('len(str1) = ', len(str1))
  39. print('len(list1) = ', len(list1))
  40. print('len(tuple1) = ', len(tuple1))
  41. print('len(dict1) = ', len(dict1))
  42. print('len(set1) = ', len(set1))
  43. # in, not in
  44. print('========in 操作比较========')
  45. print("'a' in str1 = ", 'a' in str1)
  46. print("'a' in list1 = ", 'a' in list1)
  47. print("'a' in tuple1 = ", 'a' in tuple1)
  48. print('0 in dict1 = ', 0 in dict1) # check if key is in the dict
  49. print('1 in set1 =', 1 in set1)
  50. # + (合并)
  51. print('========加法比较========')
  52. print('str1 + str2 = ', str1 + str2)
  53. print('list1 + list2 = ', list1 + list2)
  54. print('tuple1 + tuple2 = ', tuple1 + tuple2)
  55. dict1.update(dict2)
  56. print('在 dict1.update(dict2) 操作之后, dict1 = ', dict1)
  57. set1.update(set2)
  58. print('在 set1.update(set2) 操作之后, set1 = ', set1)
  59. # *
  60. print('========乘法比较========')
  61. print('str1 * 2 = ', str1 * 2)
  62. print('list1 * 2 = ', list1 * 2)
  63. print('tuple1 * 2 = ', tuple1 * 2)
  64. print('dict 没有乘法操作')
  65. print('set 没有乘法操作')
  66. # max / min
  67. print('========max比较========')
  68. print('max(str2) = ', max(str2))
  69. print('max(list2) = ', max(list2))
  70. print('max(tuple2) = ', max(tuple2))
  71. print('max(dict2) = ', max(dict2))
  72. print('max(set2) = ', max(set2))
  73. # 切片
  74. print('========切片比较========')
  75. print('str1[0:5:2] = ', str1[0:5:2])
  76. print('list1[0:5:2] = ', list1[0:5:2])
  77. print('tuple1[0:5:2] = ', tuple1[0:5:2])
  78. print('# 字典没有切片操作') # 字典没有切片操作
  79. print('# 集合没有切片操作') # 集合没有切片操作
  80. # 增加
  81. print('========增加比较========')
  82. list2 = ['G', 'H', 'I', 'J']
  83. dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
  84. set2 = set2 = {6, 7, 4, 5}
  85. print('# 字符串不可变,不支持修改元素') # 字符串不可变,不支持增加元素
  86. print("list2.append('K')")
  87. list2.append('K')
  88. print('list2 = ', list2)
  89. print('# 元组不可变,不支持修改元素') # 元组不可变,不支持修改元素
  90. print("dict2.update({10: 'K'})")
  91. dict2.update({10 : 'K'})
  92. print('dict2 =', dict2)
  93. set2.add(8)
  94. print('set2 =', set2)
  95. # 删除
  96. print('========删除比较========')
  97. list1 = ['a', 'b', 'c', 'd', 'e', 'f']
  98. dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
  99. set1 = {1, 5, 4, 3, 2}
  100. print('#字符串不支持删除元素,除非空格')
  101. print('list1.pop(2) = ', list1.pop(2))
  102. print('# 元组不可变,不支持删除元素')
  103. print('dict1.pop(2) =', dict1.pop(2))
  104. del dict1[3] # 删除键值为3的key-value对
  105. print('del dict1[3] =', dict1, '#删除键值为3的key-value对')
  106. print('set1.pop() =', set1.pop(), '# pop()随机删除集合中的一个元素, 一般是第一个元素') # pop()随机删除集合中的一个元素, 一般是第一个元素
  107. set1.remove(3)
  108. print('set1.remove(3) =', set1, '# pop(3)删除集合中的一个元素 3') # pop(3)删除集合中的一个元素 3
  109. #修改
  110. print('========修改比较========')
  111. list1 = ['a', 'b', 'c', 'd', 'e', 'f']
  112. dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
  113. print('#字符串不支持修改元素')
  114. list1[0] = 'x'
  115. print("list1[0] = 'x'")
  116. print(list1)
  117. print('# 元组不可变,不支持修改元素')
  118. dict1[0] = 'x'
  119. print("dict1[0] = 'x'")
  120. print(dict1)
  121. print('# 集合不可变,不支持修改元素')
  122. #遍历
  123. print('========遍历比较========')
  124. str1 = 'abcdef'
  125. list1 = ['a', 'b', 'c', 'd', 'e', 'f']
  126. tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
  127. dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
  128. set1 = {1, 5, 4, 3, 2}
  129. print('字符串遍历:')
  130. for i in str1:
  131. print(i)
  132. print('列表遍历:')
  133. for i in list1:
  134. print(i)
  135. print('元组遍历:')
  136. for i in tuple1:
  137. print(i)
  138. print('字典遍历:')
  139. for i in dict1.keys():
  140. print(i, dict1.get(i))
  141. print('集合遍历: #自动排序列出')
  142. for i in set1:
  143. print(i)
  144. #清空
  145. print('========清空比较========')
  146. print('# 字符串没有清空方法') # 字符串没有清空方法
  147. list1.clear()
  148. print('list1.clear() =', list1)
  149. print('# 元组没有清空方法') # 元组没有清空方法
  150. dict1.clear()
  151. print('dict1.clear() =', dict1)
  152. set1.clear()
  153. print('set1.clear() =', set1)
  154. --------------输出-----------------------
  155. str1 = 'abcdef'
  156. str2 = 'GHIJ'
  157. list1 = ['a', 'b', 'c', 'd', 'e', 'f']
  158. list2 = ['G', 'H', 'I', 'J']
  159. tuple1 = ('a', 'b', 'c', 'd', 'e', 'f')
  160. tuple2 = ('G', 'H', 'J', 'J')
  161. dict1 = {0 : 'a', 1 : 'b', 2 : 'c', 3 : 'd', 4 : 'e', 5 : 'f'}
  162. dict2 = {6 : 'G', 7 : 'H', 8 : 'I', 9 : 'J'}
  163. set1 = {1, 5, 4, 3, 2}
  164. set2 = {6, 7, 4, 5}
  165. ========取值比较========
  166. str1[0] = a
  167. list1[0] = a
  168. tuple1[0] = a
  169. dict1.get(0) = a
  170. # 集合无序,无法按位取值
  171. ========元素个数比较========
  172. len(str1) = 6
  173. len(list1) = 6
  174. len(tuple1) = 6
  175. len(dict1) = 6
  176. len(set1) = 5
  177. ========in 操作比较========
  178. 'a' in str1 = True
  179. 'a' in list1 = True
  180. 'a' in tuple1 = True
  181. 0 in dict1 = True
  182. 1 in set1 = True
  183. ========加法比较========
  184. str1 + str2 = abcdefGHIJ
  185. list1 + list2 = ['a', 'b', 'c', 'd', 'e', 'f', 'G', 'H', 'I', 'J']
  186. tuple1 + tuple2 = ('a', 'b', 'c', 'd', 'e', 'f', 'G', 'H', 'J', 'J')
  187. 在 dict1.update(dict2) 操作之后, dict1 = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'G', 7: 'H', 8: 'I', 9: 'J'}
  188. 在 set1.update(set2) 操作之后, set1 = {1, 2, 3, 4, 5, 6, 7}
  189. ========乘法比较========
  190. str1 * 2 = abcdefabcdef
  191. list1 * 2 = ['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f']
  192. tuple1 * 2 = ('a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f')
  193. dict 没有乘法操作
  194. set 没有乘法操作
  195. ========max比较========
  196. max(str2) = J
  197. max(list2) = J
  198. max(tuple2) = J
  199. max(dict2) = 9
  200. max(set2) = 7
  201. ========切片比较========
  202. str1[0:5:2] = ace
  203. list1[0:5:2] = ['a', 'c', 'e']
  204. tuple1[0:5:2] = ('a', 'c', 'e')
  205. # 字典没有切片操作
  206. # 集合没有切片操作
  207. ========增加比较========
  208. # 字符串不可变,不支持修改元素
  209. list2.append('K')
  210. list2 = ['G', 'H', 'I', 'J', 'K']
  211. # 元组不可变,不支持修改元素
  212. dict2.update({10: 'K'})
  213. dict2 = {6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K'}
  214. set2 = {4, 5, 6, 7, 8}
  215. ========删除比较========
  216. #字符串不支持删除元素,除非空格
  217. list1.pop(2) = c
  218. # 元组不可变,不支持删除元素
  219. dict1.pop(2) = c
  220. del dict1[3] = {0: 'a', 1: 'b', 4: 'e', 5: 'f'} #删除键值为3的key-value对
  221. set1.pop() = 1 # pop()随机删除集合中的一个元素, 一般是第一个元素
  222. set1.remove(3) = {2, 4, 5} # pop(3)删除集合中的一个元素 3
  223. ========修改比较========
  224. #字符串不支持修改元素
  225. list1[0] = 'x'
  226. ['x', 'b', 'c', 'd', 'e', 'f']
  227. # 元组不可变,不支持修改元素
  228. dict1[0] = 'x'
  229. {0: 'x', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}
  230. # 集合不可变,不支持修改元素
  231. ========遍历比较========
  232. 字符串遍历:
  233. a
  234. b
  235. c
  236. d
  237. e
  238. f
  239. 列表遍历:
  240. a
  241. b
  242. c
  243. d
  244. e
  245. f
  246. 元组遍历:
  247. a
  248. b
  249. c
  250. d
  251. e
  252. f
  253. 字典遍历:
  254. 0 a
  255. 1 b
  256. 2 c
  257. 3 d
  258. 4 e
  259. 5 f
  260. 集合遍历: #自动排序列出
  261. 1
  262. 2
  263. 3
  264. 4
  265. 5
  266. ========清空比较========
  267. # 字符串没有清空方法
  268. list1.clear() = []
  269. # 元组没有清空方法
  270. dict1.clear() = {}
  271. set1.clear() = set()
  272. 进程已结束,退出代码0

作业

  • a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},{“src”:”python2”},{“src”:”python3”}]}} 找到python1/python2/python3 ```python a = {“name”:”123”,”data”:{“result”:[{“src”:”python1”},{“src”:”python2”},{“src”:”python3”}]}} for i in a[‘data’][‘result’]: print(i[‘src’])

python1 python2 python3

  1. - 有如下值列表[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。
  2. ```python
  3. list1 = [11,22,33,44,55,66,77,88,99,90]
  4. list3 = []
  5. list4 = []
  6. dict1 = {'大于66' : list3, '小于66' : list4}
  7. for i in list1:
  8. if i > 66:
  9. dict1.setdefault('大于66', list3.append(i))
  10. if i < 66:
  11. dict1.setdefault('小于66', list4.append(i))
  12. print(dict1)
  13. ---------------------------------------
  14. {'大于66': [77, 88, 99, 90], '小于66': [11, 22, 33, 44, 55]}