python - 在此示例中,带逗号的 for 循环如何工作?
问题描述
def create_dog_breeds_dictionary(dog_breeds_list, dog_groups_list):
a_dictionary = dict()
for x in range(0, len(dog_breeds_list)):
a_dictionary[dog_groups_list[x]] = list(dog_breeds_list[x].split(","))
return a_dictionary
def print_key_values_in_order(a_dict):
for x, y in a_dict.items():
print(x, y)
这是我对大学实验室的一个问题。
我已经设法为此编写代码,但我通过在网上看到您可以使用逗号和 for 循环来解决它,但我不确定它是如何工作的。所以我感到困惑的是for x, y in a_dict.items():
这个 for 循环究竟是如何工作的?
解决方案
该逗号是tuple unpacking的一部分。具体来说,a_dict.items()
返回一个元组列表,每个元组中的第一项是键,每个元组中的第二项是值。在那个 for 循环中,x
被设置为键,并被y
设置为与其关联的值。
该声明类似于:
for key in a_dict.keys():
print(key, a_dict[key])
在这种情况下,没有特别的理由使用一种语法或另一种语法,因此请选择对您来说更具可读性的任何语法。在某些情况下,无法替代元组解包。
推荐阅读
- c# - dotnet 和 msbuild 中的包之间的区别
- node.js - MongoClient 抛出 MongoError: 服务器实例池被破坏
- python - 自动电子邮件的个性化内容
- c# - PDF 文件未在 .aspx 页面上下载为 pdf
- scala - GraphLoader 对象中的抽象方法错误
- c# - 找不到 ASP.NET Core Web 应用程序 (.NET Core)
- r - r - 从 R 中的 .txt 文件创建 .gz 文件
- java - 我使用 java 创建的所有文件夹和文件都是在 Ubuntu 18 中使用锁定图像创建的
- css - Sass变量更改为css变量?
- android - java.sql.SQLException:android studio 中的对象名称“tablename”无效