我的字典如下所示,我正在關注此鏈接以更新“Column_Type”鍵中的值。基本上,我想用“VARCHAR(256)”替換值“String”,用“NUMBER(4,0)”替換DATE,用“NUMBER”替換Int,用“Number”替換Numeric。每當我在代碼下面運行時,我的值都沒有更新到我的字典中。我想要的更新字典的輸出如下
請注意: column_types 的位置也可能有所不同。例如:Column_type[String] 當前位于位置 1,但稍后可能位于位置 3。
{'Column_name': ['Name', 'Salary', 'Date', 'Phone'], 'Column_Type': ['String', 'Numeric', 'Date', 'Int']}
代碼:
for key1, key2 in my_dict.items():
if key2== 'String':
my_dict[key2] = "VARCHAR(256)"
print(my_dict)
期望的輸出:
{'Column_name': ['Name', 'Salary', 'Date', 'Phone'], 'Column_Type': ['VARCHAR(256)', 'NUMBER', 'NUMBER(4,0)', 'NUMBER']}
uj5u.com熱心網友回復:
在您的示例中,您的鍵是"Column_Name"and Column_Type"。您的字典中沒有名為“String”的鍵。dict 中的兩個值都是型別list,因此也不等于字串String。
您想要的是替換串列中的特定值。
試試這樣:
for index, value in enumerate(my_dict["Column_Type"]):
if value == "String":
my_dict["Column_Type"][index] = "VARCHAR(256)"
這將替換 中的值list,而不是dict。這就是你想要的。
如果您需要替換多個值,您可以使用字典,如@Jeremy 建議的:
type_strs = {
'String': 'VARCHAR(256)',
'Numeric': 'NUMBER',
'Date': 'NUMBER(4,0)',
'Int': 'NUMBER'
}
for index, value in enumerate(my_dict["Column_Type"]):
my_dict["Column_Type"][index] = type_strs.get(value, value)
在這里,.get()dict 上的函式回傳與第一個引數給出的鍵對應的值,如果不存在這樣的鍵,則回傳第二個引數。
uj5u.com熱心網友回復:
type_strs = {
'String': 'VARCHAR(256)',
'Numeric': 'NUMBER',
'Date': 'NUMBER(4,0)',
'Int': 'NUMBER'
}
my_dict['Column_Type'] = [type_strs[t] for t in my_dict['Column_Type']]
我建議使用字典而不是 if 陳述句來翻譯型別字串
uj5u.com熱心網友回復:
您在此行中將串列與此串列的元素進行比較if key2== 'String':
key2當您旅行時,該變數包含 next ['String', 'Numeric', 'Date', 'Int'],因此您需要加入該陣列的值以進行比較。你可以用一個for回圈來做
程式是下一個:
my_dict={'Column_name': ['Name', 'Salary', 'Date', 'Phone'], 'Column_Type': ['String', 'Numeric', 'Date', 'Int']}
# We create this variable to save the position of the element
position=0
# We travel to the dictionary
for i in my_dict['Column_Type']:
# If the variable is equal to the string
if i == 'String':
# We assign the new information to the variable
my_dict['Column_Type'][position]="VARCHAR(256)"
#And add one to the position
position =1
print(my_dict)
輸出
{'Column_name': ['Name', 'Salary', 'Date', 'Phone'], 'Column_Type': ['VARCHAR(256)', 'Numeric', 'Date', 'Int']}
uj5u.com熱心網友回復:
您可以使用list.update(val1, val2)
例子:
# Dictionary of strings to ints
word_freq = {
"Hello": 56,
"at": 23,
"test": 43,
"this": 43
}
# Adding a new key value pair
word_freq.update({'before': 23})
print(word_freq)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465148.html
標籤:Python python-3.x 字典
上一篇:如何概括從字典鍵中獲取值?
下一篇:具有多索引的熊貓資料框到字典
