# _*_ coding:utf-8 _*_ """ name:zhangxingzai date:2022/10/31 form:《Python编程从入门到实践》 """ """ 写在前面,本章你将学到: 如何遍历字典中所有的键值对、所有的键和所有的值; 如何在列表中嵌套字典,在字典中嵌套列表,以及在字典中嵌套字典 """ # 遍历字典中的所有键值对 user_0 = {'username': 'efermi', 'first': 'enrico', 'last': 'fermi'} print(user_0.items()) for key, value in user_0.items(): print(f'Key: {key}') print(f'Value: {value}') # 这里遍历时同时声明了两个变量,这个是完全可以的。而后面items()方法,则返回的是一个键值对列表 favorite_languages = { 'zhangsan': 'C', 'lisi':'java', 'wangwu': 'python', } for name, language in favorite_languages.items(): print(f'{name}喜欢的语言是{language}') # 遍历字典中所有的键 favorite_languages = dict(zhangsan='C', lisi='java', wangwu='python') # 这个是用dict()方法来定义字典 # for name in favorite_languages: 此种写法默认遍历字典所有键,建议还是使用显示的方法keys() for name in favorite_languages.keys(): print(name) favorite_languages = {'zhangsan': 'C', 'lisi': 'java', 'wangwu': 'python'} friends = ['heliu', 'zhangsan'] for name in favorite_languages.keys(): print(f'你的朋友{name}') if name in friends: language = favorite_languages[name] print(f'{name}喜欢的语言是{language}') # 按照特定顺序遍历字典中所有键 favorite_languages = {'zhangsan': 'C', 'lisi': 'java', 'wangwu': 'python'} for name in sorted(favorite_languages.keys()): # 使用sorted()方法来进行排序 print(f'你的朋友{name}') # 遍历字典中所有的值 favorite_languages = {'zhangsan': 'C', 'lisi': 'java', 'wangwu': 'python'} print('最受欢迎的语言有:') for language in favorite_languages.values(): print(f'\t{language}') # 给值去重 favorite_languages = {'zhangsan': 'python', 'lisi': 'java', 'wangwu': 'python'} for language in set(favorite_languages.values()): print(f'受欢迎的语言有{language}') # 使用集合set()中不可重复特性去重,集合暂不在这介绍,后面会有 # 讲字典存储在列表中,或将列表存储在字典中,这种称为嵌套 alien_0 = {'color': 'green', 'point': '5'} alien_1 = {'color': 'yellow', 'point': '10'} alien_2 = {'color': 'red', 'point': '15'} aliens = [alien_0, alien_1, alien_2] for alien in aliens: print(alien) # 使用range()生成30个外星人 # 创建一个用来存储外星人的列表 aliens = [] # 创建30个绿色的外星人 for alien_number in range(30): new_alien = {'color': 'green', 'point': '5'} aliens.append(new_alien) # 显示前5个外星人 for alien in aliens[:5]: print(alien) print("...") print(f'一共创建了{len(aliens)}个外星人') # 扩展上面的循环,将前三个外星人修改为黄色,速度为中等且分值为10分 # 创建一个用来存储外星人的列表 aliens = [] # 创建30个绿色的外星人 for alien_number in range(30): new_alien = {'color': 'green', 'point': '5', 'speed': 'slow'} aliens.append(new_alien) # 遍历前三个,并修改 for alien in aliens[:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['point'] = '10' alien['speed'] = 'medium' # 显示前5个外星人 for alien in aliens[:5]: print(alien) # 继续扩展上面的循环,在其中添加一个elif代码块,将前5个中的黄色外星人修改为红色,速度为快等且分值为15分 for alien in aliens[:5]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['point'] = '10' alien['speed'] = 'medium' elif alien['color'] == 'yellow': alien['color'] = 'red' alien['point'] = '15' alien['speed'] = 'fast' # 显示前5个外星人 for alien in aliens[:5]: print(alien) # 在字典中存储列表 # 存储点的披萨信息 pizza = { 'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'], } # 概述点的披萨 print(f"你点的{pizza['crust']}披萨用料有:") for topping in pizza['toppings']: print('\t' + topping) # 每个人喜欢的语言 favorite_languages = { 'zhangsan': ['python', 'C'], 'lisi': ['go'], 'wangwu': ['java', 'C'] } for name,languages in favorite_languages.items(): print(f'{name}喜欢的语言是:') for language in languages: print('\t' + language.upper()) # 注意:列表和字典嵌套层级不应太多,如果嵌套比我们示例的还要多,那可能有其他简洁与快捷的解决方案 # 字典中存储字典,将用户名作为键,用户信息存储到字典中,该字典再作为用户名的关联值 users = { 'panghu': { 'first': 'san', 'last': 'zhang', 'location': 'Beijing', }, 'xiaopanghu': { 'first': 'si', 'last': 'li', 'location': 'Shanghai', } } # 将键值对分别提取出来 for username,user_info in users.items(): print(f'\nUsername: {username}') full_name = f"{user_info['last']}{user_info['first']}" location = user_info['location'] print(f'\tFull_name: {full_name.title()}') print(f'\tLocation: {location}')
【Python学习】字典_02
最新推荐文章于 2024-07-25 18:55:58 发布