![](/img/trans.png)
[英]dict comprehension including list comprehension with if statement no producing the correct output
[英]dict comprehension with multiple output
我想同時填充兩個字典,就像在這個例子中一樣:
def square(num):
return(num*num,num+num)
square_dict={}
sum_dict={}
for i in range(1,11):
square_dict[i],sum_dict[i]=square(i)
print(square_dict)
print(sum_dict)
我想知道是否可以通過聽寫理解來做到這一點。 就像是:
square_dict, sum_dict= [dict(zip(num, square(num)) for num in range(1, 11))]
(這顯然是行不通的)
提前致謝!
您可以 zip 從 output 為range(1, 11)
中的每個項目的square
的鍵值對,以便您可以 map 將兩個結果序列發送到 dict
square_dict, sum_dict = map(dict, (zip(*([(i, v) for v in square(i)] for i in range(1, 11)))))
演示: https://replit.com/@blhsing/AdventurousDeficientMathematics
另一種做法是將zip output的square
轉化為兩個序列的平方和相加,然后將zip range(1, 11)
與每個序列轉化為key-value對構造:
square_dict, sum_dict = (dict(zip(range(1, 11), p)) for p in zip(*map(square, range(1, 11))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.