• python基础知识整理 03-字典、集合


    目录

    1 字典

    1.1 字典创建

    1.2 字典操作

    1.2.1 使用[]添加或修改元素

    1.2.2 update()合并字典

    1.2.3 del删除具有指定键的元素

    1.2.4 clear()清除所有元素

    1.2.5使用in判断是否存在

    1.2.6 使用[key]获取元素

    1.2.7 获取字典所有键、值、键值对

    1.2.8 字典遍历

    1.2.9 字典、元组、列表转换

    2 集合

    2.1 set集合创建

    2.2 set添加元素

    2.3 set元素删除

    2.4 set元素遍历

    2.5 set并集、交集

    2.6 set应用:统计字符个数


    1 字典

    1.1 字典创建

    用大括号{}将一系列以逗号隔开的键值对(key:value)包裹起来即可以进行字典的创建。最简单的字典是空字典,不包括任何的键值对。

    1. emptyDict = {}
    2. info = {'name':'班长','id':100,'sex':'f','address':'地球亚洲中国北京'}

    1.2 字典操作

    1.2.1 使用[]添加或修改元素

    向字典添加元素非常简单,只需要指定该元素的键并赋予相应的值即可。

    如果该元素的键已经存在于字典中,那么该键对应的旧值会被新值取代。

    如果该元素的键并未在字典中出现,则会被加入到字典。与列表不同,你不需要担心赋值过程中Python会抛出越界异常。

    1. >> info = {'name': '班长', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京'}
    2. >>> info['name']
    3. '班长'
    4. >>> info['name'] = '小明'
    5. >>> print(info)
    6. {'name': '小明', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京'}
    7. >>> info['age'] = 18
    8. >>> print(info)
    9. {'name': '小明', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京', 'age': 18}

    1.2.2 update()合并字典

    update()可以将一个字典的键值对赋值到另一个字典中。

    如果待添加的字典于待扩充的字典包含同样的键值的话,新归入的字典的值会覆盖原有的值。

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> dict2 = {'sex': 'men', 'like': 'python'}
    3. >>> dict3 = {'address': 'china', 'name': 'baby'}
    4. >>> dict1.update(dict2)
    5. >>> print(dict1)
    6. {'name': 'boby', 'age': 18, 'sex': 'men', 'like': 'python'}
    7. >>> dict1.update(dict3)
    8. >>> print(dict1)
    9. {'name': 'baby', 'age': 18, 'sex': 'men', 'like': 'python', 'address': 'china'}

    1.2.3 del删除具有指定键的元素

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> del dict1['age']
    3. >>> print(dict1)
    4. {'name': 'boby'}

    1.2.4 clear()清除所有元素

    使用clear(),或者给字典重新赋值一个空字典{},可以将字典中所有元素删除。

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> dict1.clear()
    3. >>> print(dict1)
    4. {}
    5. >>> dict1 = {'name': 'boby', 'age': 18}
    6. >>> dict1 = {}
    7. >>> print(dict1)
    8. {}

    1.2.5使用in判断是否存在

    如果你希望判断某一个键是否存在于一个字典中,可以使用in

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> 'name' in dict1
    3. True
    4. >>> 'sex' in dict1
    5. False

    1.2.6 使用[key]获取元素

    这是对字典最常用进行的操作,只需要指定字典名和键即可获得对应的值。

    如果字典中不包含指定的键,会抛出一个异常。

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> dict1['name']
    3. 'boby'
    4. >>> dict1['sex']
    5. Traceback (most recent call last):
    6. File "<input>", line 1, in <module>
    7. KeyError: 'sex'

    有两种方法可以避免这种情况的发生。

    第一种是在访问前通过in测试键是否存在;

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> if key in dict1:
    3. ... print(dict[key])
    4. ... else:
    5. ... print('键值不存在')
    6. ...
    7. 键值不存在

    第二种使用字典函数get()。需要指定字典名,键值和一个可选值。

    如果键存在,则会得到对应的值,如果不存在,将会返回可选值,如果没有指定可选值,会得到None。

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> dict1.get('name')
    3. 'boby'
    4. >>> dict1.get('sex', '键值不存在')
    5. '键值不存在'
    6. >>> dict1.get('sex')
    7. None

    1.2.7 获取字典所有键、值、键值对

    使用keys()可以获得字典中所有的键。在Python2中,keys()会返回一个列表,而在Python3中返回dict_keys类型。

    使用values()可以获取字典中所有值。返回dict_values类型

    使用items()函数可以获取字典中所有的键值对。返回dict_items类型

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> dict1.keys()
    3. dict_keys(['name', 'age'])
    4. >>> dict1.values()
    5. dict_values(['boby', 18])
    6. >>> dict1.items()
    7. dict_items([('name', 'boby'), ('age', 18)])

    它的键是迭代器形式。如果我们需要一个完整的列表,在Python中,我们可以手动调用list()将dict_keys转换为列表类型。

    1. >>> dict1 = {'name': 'boby', 'age': 18}
    2. >>> [key for key in dict1.keys()]
    3. ['name', 'age']
    4. >>> [value for value in dict1.values()]
    5. >>> ['boby', 18]
    6. >>> [items for items in dict1.items()]
    7. [('name', 'boby'), ('age', 18)]

    1.2.8 字典遍历

    1. # 遍历字典中的key
    2. for key in students.keys():
    3.     print(key, end=" ")
    4. # 遍历字典中的values
    5. for value in students.values():
    6.     print(value, end=" ")
    7. # 遍历字典中的key-value
    8. for key, value in students.items():
    9.     print("%s:%s" % (key, value), end=" ")

    1.2.9 字典、元组、列表转换

    1. my_list = [1234]
    2. my_tuple = tuple(my_list)
    3. print("列表转元组:", my_tuple)
    4. my_list = [["name""John"], ["age"18], ["sex""男"]]
    5. my_dict = dict(my_list)
    6. print("列表嵌套转字典:", my_dict)
    7. print("--------------")
    8. # 字典->列表 元组
    9. my_dict = {'sex''男''age'18'name''John'}
    10. my_list = list(my_dict.keys())
    11. print("字典keys转列表:", my_list)
    12. my_list = list(my_dict.values())
    13. print("字典values转列表:", my_list)
    14. my_list = list(my_dict.items())
    15. print("字典items转列表:", my_list)
    16. print("--------------")
    17. my_tuple = tuple(my_dict.keys())
    18. print("字典keys转元组:", my_list)
    19. my_list = tuple(my_dict.values())
    20. print("字典values转元组:", my_list)
    21. my_list = tuple(my_dict.items())
    22. print("字典items转元组:", my_list)
    23. """
    24. 打印结果
    25. 列表转元组: (1, 2, 3, 4)
    26. 列表嵌套转字典: {'name': 'John', 'age': 18, 'sex': '男'}
    27. --------------
    28. 字典keys转列表: ['sex', 'age', 'name']
    29. 字典values转列表: ['男', 18, 'John']
    30. 字典items转列表: [('sex', '男'), ('age', 18), ('name', 'John')]
    31. --------------
    32. 字典keys转元组: [('sex', '男'), ('age', 18), ('name', 'John')]
    33. 字典values转元组: ('男', 18, 'John')
    34. 字典items转元组: (('sex', '男'), ('age', 18), ('name', 'John'))
    35. """

    2 集合

    set集合是一个无序不重复元素集。由于set是一个无序集合,set并不记录元素位置,所以不支持下标操作和切片操作。

    2.1 set集合创建

    创建set集合,我们可以使用set函数来创建:

    1. # 1. 创建一个空的set集合
    2. my_set = set()
    3. # 2. 创建一个数字元素集合,
    4. # 注意:set会剔除重复元素
    5. my_set = set([1, 2, 3, 4, 5, 5])
    6. print(my_set)
    7. # 3. 创建一个唯一元素的字符集合
    8. my_set = set("hello world!")
    9. print(my_set)

    2.2 set添加元素

    向set集合中添加元素,可以使用add()函数和update()函数,add()可以一次添加一个元素,update()函数可以一次添加多个元素.

    1. # 创建一个空的集合
    2. my_set = set()
    3. # add()函数向set中添加元素
    4. my_set.add(10)
    5. my_set.add(20)
    6. my_set.add(30)
    7. # 打印set集合
    8. print(my_set)
    9. # update()函数添加多个元素
    10. my_set.update([60, 40, 80, 90])
    11. my_set.update((160, 140, 180, 190))
    12. my_set.update("hello")
    13. # 如果添加的元素是一个字典,那么将字典的key添加到集合中
    14. # my_set.update({"name": "smith", "age": 1030})
    15. print(my_set)

    2.3 set元素删除

    删除set集合中的元素可以使用pop()、remove()函数、discard()函数 pop()函数会删除set集合中的任意一个元素,如果set集合为空,会抛出KeyError错误。

    remove(element)函数从集合中删除一个元素,如果元素不存在,会抛出KeyError错误。

    discard(val)函数删除集合中的一个元素,如果不存在,则不做任何事.

    1. my_set = set([9, 2, 3, 4, 7])
    2. # 删除任意一个元素
    3. my_set.pop()
    4. print(my_set)
    5. # 删除指定元素
    6. my_set.remove(4)
    7. print(my_set)
    8. # 删除元素
    9. my_set.discard(3)
    10. print(my_set)

    2.4 set元素遍历

    1. # 创建一个集合
    2. my_set = set([1, 2, 3, 4])
    3. # 遍历set集合
    4. for value in my_set:
    5. print(value, end="|")

    2.5 set并集、交集

    1. my_set1 = set([1, 2, 3, 4, 5])
    2. my_set2 = set([3, 4, 5, 6, 7])
    3. # 1. 求两个集合的并集
    4. new_set1 = my_set1.union(my_set2)
    5. # 或者
    6. new_set2 = my_set1 | my_set2
    7. print(new_set1)
    8. print(new_set2)
    9. # 2. 求两个集合的交集
    10. new_set3 = my_set1.intersection(my_set2)
    11. # 或者
    12. new_set4 = my_set1 & my_set2
    13. print(new_set3)
    14. print(new_set4)

    2.6 set应用:统计字符个数

    1. # 统计字符串中字符的个数
    2. my_string = input("请输入任意字符串:")
    3. # 先对字符串去重
    4. new_string = set(my_string)
    5. # 字典记录字符出现次数
    6. my_count = {}
    7. # 遍历new_string
    8. for ch in new_string:
    9. my_count[ch] = my_string.count(ch)
    10. # 输出结果
    11. print(my_count)

  • 相关阅读:
    阿里云-AnalyticDB【分析型数据库】总结介绍
    算法|每日一题|最长平衡子字符串|计数
    【微服务架构】链路追踪Skywalking入门与实践
    数一独有:多元函数积分学中的基本公式及其应用
    ModbusTCP 转 Profinet 主站网关在博图配置案例
    纵横职场的8招秘诀,高手都这么干
    中电金信技术实践|分布式事务简说
    MySQL缓冲池Buffer Pool
    2023 年最新Java 毕业设计选题题目参考,500道 Java 毕业设计题目,值得收藏
    机械转码日记【23】模板进阶
  • 原文地址:https://blog.csdn.net/bnever/article/details/125526015