Python: 字典 {_} “使用嵌套数据结构”

摘要:# Create three dictionaries representing different aliensalien_0 = {'color': 'green', 'points': 5}alien_1 = {'color': 'yellow', 'p

嵌套是 Python 中的一个高级概念,可以将多个字典存储在一个列表中,或者将一个项目列表作为字典中的值存储。

这允许高度灵活的数据结构。

您可能需要管理多个同类对象,例如游戏中的一组外星人。

您可以将它们全部存储在一个列表中,而不是为每个对象创建单独的字典。

例如,您可以将三个外星人的详细信息存储在字典列表中,如下所示:

# Create three dictionaries representing different aliensalien_0 = {'color': 'green', 'points': 5}alien_1 = {'color': 'yellow', 'points': 10}alien_2 = {'color': 'red', 'points': 15}# Store the dictionaries in a listaliens = [alien_0, alien_1, alien_2]# Loop through the list and print each alienfor alien in aliens: print(alien)>>{'color': 'green', 'points': 5}{'color': 'yellow', 'points': 10}{'color': 'red', 'points': 15}

甚至可以自动生成大量类似的对象。以下是创建 30 个绿色外星人舰队的方法:

# Make an empty list to store aliensaliens = # Generate 30 green aliensfor alien_number in range(30): new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_alien)# Show the first 5 aliensfor alien in aliens[:5]: print(alien)print(f"Total number of aliens: {len(aliens)}")>>{'color': 'green', 'points': 5, 'speed': 'slow'}{'color': 'green', 'points': 5, 'speed': 'slow'}{'color': 'green', 'points': 5, 'speed': 'slow'}{'color': 'green', 'points': 5, 'speed': 'slow'}{'color': 'green', 'points': 5, 'speed': 'slow'}Total number of aliens: 30

该程序创建 30 个相同的外国人并打印前 5 个。我

如果你想修改其中的一些(比如,把前三个改成黄色的 aliens),你可以使用 if 语句来选择性地修改它们:

# Make an empty list for storing aliens.aliens = # Make 30 green aliens.for alien_number in range (30): new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'} aliens.append(new_alien)for alien in aliens[:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['speed'] = 'medium' alien['points'] = 10# Show the first 5 aliens.for alien in aliens[:5]: print(alien)>>{'color': 'yellow', 'points': 10, 'speed': 'medium'}{'color': 'yellow', 'points': 10, 'speed': 'medium'}{'color': 'yellow', 'points': 10, 'speed': 'medium'}{'color': 'green', 'points': 5, 'speed': 'slow'}{'color': 'green', 'points': 5, 'speed': 'slow'}

这会将前三个外星人更新为黄色的中速外星人,价值 10 分。

有时,您可能需要在字典中存储单个键的多个值。

例如,在订购披萨时,您可能希望同时存储 pist type 和 toppings 列表:

# Store information about a pizzapizza = { 'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'],}# Summarize the orderprint(f"You ordered a {pizza['crust']}-crust pizza with the following toppings:")for topping in pizza['toppings']: print(f"\t{topping}")>>You ordered a thick-crust pizza with the following toppings: mushrooms extra cheese

有时,您可能希望将一个词典嵌套在另一个词典中。

例如,如果您正在管理网站上的用户配置文件,则可以存储每个用户的详细信息,如下所示:

# Dictionary of usersusers = { 'aeinstein': { 'first': 'albert', 'last': 'einstein', 'location': 'princeton', }, 'mcurie': { 'first': 'marie', 'last': 'curie', 'location': 'paris', },}# Loop through users and print informationfor username, user_info in users.items: print(f"\nUsername: {username}") full_name = f"{user_info['first']} {user_info['last']}" location = user_info['location'] print(f"\tFull name: {full_name.title}") print(f"\tLocation: {location.title}")>>Username: aeinstein Full name: Albert Einstein Location: PrincetonUsername: mcurie Full name: Marie Curie Location: Paris

嵌套列表和字典允许使用复杂和动态的数据结构,从而更容易存储和操作相关信息。但是,请注意不要嵌套得太深,因为这会使代码难以管理。

来源:自由坦荡的湖泊AI一点号

相关推荐