洞察循环
Insight Into A Loop
嘿,我从 Whosebug 得到了这个,它计算了两个词典之间的共同值,但我希望有人能花时间分解这个过程,因为它没有在主题的答案部分解释。
我想我明白了;
dictionary1[key] for key in dictionary1 if key in dictionary2 and dictionary1[key] == dictionary2[key]
shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
print(shared_items)
是否只匹配两个字典中键值匹配的地方?另外,为什么 k: 在开头?
无论如何,我知道这是一个随机问题,但这种类型的迭代非常巧妙,尤其是当您将 == 更改为 <= 和 >= 时,它真的很有用,希望有人能花时间分解它我可以绕过它。谢谢
这被称为'dict comprehension',类似于'list comprehension'。基本上,行
shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
相当于:
shared_items = {}
for k in x:
if k in y and x[k] == y[k]:
shared_items[k] = x[k]
嘿,我从 Whosebug 得到了这个,它计算了两个词典之间的共同值,但我希望有人能花时间分解这个过程,因为它没有在主题的答案部分解释。
我想我明白了;
dictionary1[key] for key in dictionary1 if key in dictionary2 and dictionary1[key] == dictionary2[key]
shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
print(shared_items)
是否只匹配两个字典中键值匹配的地方?另外,为什么 k: 在开头?
无论如何,我知道这是一个随机问题,但这种类型的迭代非常巧妙,尤其是当您将 == 更改为 <= 和 >= 时,它真的很有用,希望有人能花时间分解它我可以绕过它。谢谢
这被称为'dict comprehension',类似于'list comprehension'。基本上,行
shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
相当于:
shared_items = {}
for k in x:
if k in y and x[k] == y[k]:
shared_items[k] = x[k]