我想弄清楚如何最好地創建一個 python 字典,其中值是變數名
前任
ruleLst = ["gender brand","sport gender","sport gender brand"]
for i in ruleLst:
new_values = i.split(" ")
rules.update({i:new_values})
rules
回傳:
{
'gender brand': ['gender', 'brand'],
'sport gender': ['sport', 'gender'],
'sport gender brand': ['sport', 'gender', 'brand']
}
我嘗試輸出的是:
{
'gender brand': [gender, brand],
'sport gender': [sport, gender],
'sport gender brand': [sport, gender, brand]
}
其中性別、品牌、運動是在定義 ruleLst 之前在代碼中定義的串列
提前致謝
uj5u.com熱心網友回復:
您可以使用串列理解,例如:
ruleLst = ["gender brand","sport gender","sport gender brand"]
gender = ["M", "F"]
sport = ["basket", "volleyball"]
brand = [1, 2]
a = {i: [globals()[j] for j in i.split(" ")] for i in ruleLst}
print(a)
和輸出:
{
'gender brand': [['M', 'F'], [1, 2]],
'sport gender': [['basket', 'volleyball'], ['M', 'F']],
'sport gender brand': [['basket', 'volleyball'], ['M', 'F'], [1, 2]]
}
參考:
- 使用串列理解創建字典
- 如何獲取字串中給定名稱的變數的值?
uj5u.com熱心網友回復:
嘗試使用globals()[new_values[0]]andglobals()[new_values[1]]而不是new_values獲取變數值。
像這樣:
ruleLst = ["gender brand","sport gender","sport gender brand"]
rules = {}
gender = ["male", "female"]
sport = ["basket", "volleyball"]
brand = ["x", "y"]
for i in ruleLst:
new_values = i.split(" ")
rules.update({i:[globals()[new_values[0]], globals()[new_values[1]]]})
print(rules)
uj5u.com熱心網友回復:
你可以用這樣的 map 函式解決這個問題。通過將其轉換為字典,您將獲得所需的字典。
rules = dict(map(lambda elem: [elem, elem.split(' ')], ruleLst))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402264.html
下一篇:如何修改用戶輸入請求中的鍵值
