簡體   English   中英

如何使用單個 for 循環從列表創建字典?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM