如何更新 Python 字典中的值?
How to update values in Python's dictionary?
我的字典如下所示,我正在按照此 link 更新“Column_Type”键中的值。基本上,我想将值“String”替换为“VARCHAR(256)”,将 DATE 替换为“NUMBER (4,0)”,将 Int 替换为“NUMBER”,将 Numeric 替换为“Number”。每当我 运行 下面的代码时,我的值都不会更新到我的 dictionary.My 更新字典所需的输出如下
请注意: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']}
您可以使用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)
在您的示例中,您的密钥是 "Column_Name"
和 Column_Type"
。在你的字典中有 no 键名为“String”。字典中的两个值都是 list
类型,因此两者都不等于字符串 String
。
您想要的是替换列表中的特定值。
这样试试:
for index, value in enumerate(my_dict["Column_Type"]):
if value == "String":
my_dict["Column_Type"][index] = "VARCHAR(256)"
这替换了list
中的值,不是字典。这就是你想要的。
如果您需要替换多个值,您可以使用字典,就像@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()
字典上的函数 returns 对应于第一个参数给出的键的值,如果不存在这样的键,则为第二个参数。
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 语句来翻译类型字符串
你在这一行中比较一个列表和这个列表的一个元素if key2== 'String'
:
key2
当你旅行时变量包含下一个['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']}
我的字典如下所示,我正在按照此 link 更新“Column_Type”键中的值。基本上,我想将值“String”替换为“VARCHAR(256)”,将 DATE 替换为“NUMBER (4,0)”,将 Int 替换为“NUMBER”,将 Numeric 替换为“Number”。每当我 运行 下面的代码时,我的值都不会更新到我的 dictionary.My 更新字典所需的输出如下
请注意: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']}
您可以使用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)
在您的示例中,您的密钥是 "Column_Name"
和 Column_Type"
。在你的字典中有 no 键名为“String”。字典中的两个值都是 list
类型,因此两者都不等于字符串 String
。
您想要的是替换列表中的特定值。
这样试试:
for index, value in enumerate(my_dict["Column_Type"]):
if value == "String":
my_dict["Column_Type"][index] = "VARCHAR(256)"
这替换了list
中的值,不是字典。这就是你想要的。
如果您需要替换多个值,您可以使用字典,就像@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()
字典上的函数 returns 对应于第一个参数给出的键的值,如果不存在这样的键,则为第二个参数。
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 语句来翻译类型字符串
你在这一行中比较一个列表和这个列表的一个元素if key2== 'String'
:
key2
当你旅行时变量包含下一个['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']}