[英]How to create a dictionary from list with single for loop?
列表是 a = [1,2,3]
如何從下面的列表中獲取字典?
{1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3}
條件是不要使用兩個 for 循環。
在面試中被問到,但沒有兩個 for 循環我無法實現,所以我認為面試官可能是錯的。
注意:列表a是可變長度的
您提供的示例不起作用。 正如@Mark 建議的那樣,嘗試將所需的字典放入解釋器中:
>>> {1: 1, 1: 2, 1: 3, 2: 1, 2: 2, 2: 3, 3: 1, 3: 2, 3: 3}
{1: 3, 2: 3, 3: 3}
這是因為, 根據 Python 文檔,
最好將字典視為一組鍵:值對,要求鍵是唯一的(在一個字典內)。
第一對創建字典{1: 1}
。 然后下一對更新它: {1: 2}
等。因此,到最后,您將剩下最后一對具有給定鍵(對於每個鍵)。
笛卡爾積:
from itertools import product
a = [1,2,3]
list(product(a, a))
順便說一句,由於重復的鍵,這個結果不是一個“有效”的字典。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.