簡體   English   中英

如何在 for 循環中計算值作為字典鍵的一部分

[英]How do I counter value in a for loop as part of my dictionary key

我正在嘗試創建一個 for 循環,每次循環時將鍵和值添加到字典中。 這個 for 循環的計數器值是每次添加到字典中的鍵名的一部分。 如何在不為鍵值定義單獨的集合並將它們分配給鍵值的情況下對此進行編碼? 或者更好地說,我怎樣才能刪除這條線? "y.insert(i, "這是關鍵號碼" + str(i+1))"

這是我當前的代碼:

Dic = {}
y = []
for i in range(0,4):
    y.insert(i, "This is key number " + str(i+1))
    Dic[y[i]] = "This is a constant value for all keys"

您實際上只是在列表的最后一個位置insert新項目(為此您應該使用append ,但這不是重點),然后從列表中獲取該索引處的元素。 相反,您可以將它分配給一個臨時變量,而不需要列表:

Dic = {}
for i in range(0,4):
    x = "This is key number " + str(i+1)
    Dic[x] = "This is a constant value for all keys"

當然,您也不需要該變量,您可以將表達式放入[...] (但可能會認為上述內容更具可讀性):

Dic = {}
for i in range(0,4):
    Dic["This is key number " + str(i+1)] = "This is a constant value for all keys"

現在可以直接翻譯成字典理解:

Dic = {"This is key number " + str(i+1): "This is a constant value for all keys" for i in range(0,4)}

經過一些清理(注意:f-strings 需要更新版本的 Python,但還有其他方法可以將數字格式化為不連接的字符串):

dic = {f"This is key number {i+1}": "This is a constant value for all keys" for i in range(4)}

如果你想堅持一些接近你開始的 for 循環,只需執行以下操作:

Dic = {}
for i in range(0,4):
    Dic[f"This is key number {i}"] = "This is a constant value for all keys"

您可以使用 dict 的 fromkeys() 方法:

Dic = dict.fromkeys(map("This is key number {}".format,range(4)),"constant")

print(Dic)
{'This is key number 0': 'constant', 
 'This is key number 1': 'constant', 
 'This is key number 2': 'constant', 
 'This is key number 3': 'constant'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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