我正在寻找一种不同的方法来访问for循环中字典中的每个键。下面是一个示例代码,我在字典中迭代,并借助计数器和if语句访问每个键。没有计数器或if语句,还有其他方法访问密钥吗
def string_to_dict(csv):
dict = []
tmp = csv.splitlines()
for i in tmp:
tmp_dict = {"vorname" : "none", "nachname" : "none", "email" : "none"};
tmp_i= i.split(",")
counter = 0;
for si in tmp_i:
if counter ==0:
tmp_dict["vorname"] = si
counter =counter + 1
elif counter == 1:
tmp_dict["nachname"] = si
counter = counter + 1
else:
tmp_dict["email"] = si
dict.append(tmp_dict)
csv = """Donald,Duck,d.duck@entenhausen.com
Wiley,Coyote,whiley@canyon.org
Road,Runner,roadrunner@canyon.org"""
让我们从这样一个事实开始,即您并没有尝试迭代字典,而是创建一个包含来自CSV格式字符串的字典条目的列表。 其次,代码中有很多python语法错误和错误。 避免使用保留字(如“dict”)作为参数名
如果这段代码对您有所帮助,您可以将其作为一个开始,但我建议您重新学习python语法和最佳实践
这也可以使用列表理解来完成,但可读性要差得多
如果您希望对到目前为止所做的操作进行最小的更改,那么只需获取
list of keys
并使用index
值(在您的示例中为计数器变量),如下所示:样本运行:
另一个注意事项:您将变量命名为
dict
您应该避免这样做,因为它是Python中的一个关键字如果您已经期望姓名、姓氏和电子邮件,则不需要循环
我们可以不断迭代以改进解决方案:
更重要的是(如果您想使用受保护的关键字,如dict,命名约定是在其后面使用下划线):
以及列表理解:
相关问题 更多 >
编程相关推荐