我现在正试着把注意力集中在列表理解上,试着通过举例和在理解之外形成循环来练习,反之亦然。可能是一个很容易犯的错误,或者是森林换树的情况。以示例项目中的以下表达式为例:
rows = []
data = ['a', 'b']
res = ['1', '2']
rows.append({data[counter]: res[counter] for counter, _ in enumerate(data)})
打印(行):
[{'a': '1', 'b': '2'}]
作为for循环,我该如何执行此操作?以下内容将每个循环包装到一个卷曲的括号中,而不是两个
for counter, _ in enumerate(data):
rows.append({data[counter]: res[counter]})
打印(行):
[{'a': '1'}, {'b': '2'}]
我错过什么了吗?或者在使用for循环时必须手动合并项目吗
在for循环的每次迭代中,您都要创建一个新字典并将其附加到列表中。如果您想将整个字典存储在列表中,那么您应该尝试类似的方法,它会按预期输出:
输出:
代码中的问题是为
data
中的每个项创建一个字典,并将其附加到每个迭代中的行中为了实现所需的行为,您应该在每次迭代中更新相同的dict,并且在完成字典的工作之后,才应该将它附加到行中
试试这个:
另一种简洁的编写方法可能是:
相关问题 更多 >
编程相关推荐