如果字典在列表中,如何将它们的值从字符串更改为 int
How to change the values of dictionary from string to int if they are in a list
我有一本字典作为
maketh = {'n':['1', '2', '3'], 'g': ['0', '5', '6', '9'], 'ca': ['4', '8', '1', '5', '9', '0']}
我打算改成
maketh_new = {'n':[1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}
数字在值中的顺序非常重要。所以,顺序应该保持不变
即使在更改之后。
当我尝试使用任何可用的在线方法更改它时,我总是遇到的错误是:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
“如有任何打字错误请忽略...”
我自己写的一个可能像这样的东西可以工作的是:
maketh_new = dict()
for (key, values) in maketh.items():
for find in len(values):
maketh_new [key] = int(values[find])
我试过它,想如果我可以访问列表中值的所有元素作为字符串,那么我可以将它键入 cast 为 int。但是我得到一个错误:
'list' object cannot be interpreted as an integer
所以如果有人能帮我找到解决办法,请做...
假设值中的所有元素都是数字,您可以 map
int
值:
maketh_new = {k: list(map(int, v)) for k, v in maketh.items()}
输出:
{'n': [1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}
如果没有,您可以使用 str.isdigit
来更安全地输入:
maketh = {'n':['1', '2', 'a'], # Note 'a' at last
'g': ['0', '5', '6', '9'],
'ca': ['4', '8', '1', '5', '9', '0']}
maketh_new = {k: [int(i) if i.isdigit() else i for i in v] for k, v in maketh.items()}
输出:
{'n': [1, 2, 'a'], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}
我有一本字典作为
maketh = {'n':['1', '2', '3'], 'g': ['0', '5', '6', '9'], 'ca': ['4', '8', '1', '5', '9', '0']}
我打算改成
maketh_new = {'n':[1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}
数字在值中的顺序非常重要。所以,顺序应该保持不变 即使在更改之后。
当我尝试使用任何可用的在线方法更改它时,我总是遇到的错误是:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
“如有任何打字错误请忽略...”
我自己写的一个可能像这样的东西可以工作的是:
maketh_new = dict()
for (key, values) in maketh.items():
for find in len(values):
maketh_new [key] = int(values[find])
我试过它,想如果我可以访问列表中值的所有元素作为字符串,那么我可以将它键入 cast 为 int。但是我得到一个错误:
'list' object cannot be interpreted as an integer
所以如果有人能帮我找到解决办法,请做...
假设值中的所有元素都是数字,您可以 map
int
值:
maketh_new = {k: list(map(int, v)) for k, v in maketh.items()}
输出:
{'n': [1, 2, 3], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}
如果没有,您可以使用 str.isdigit
来更安全地输入:
maketh = {'n':['1', '2', 'a'], # Note 'a' at last
'g': ['0', '5', '6', '9'],
'ca': ['4', '8', '1', '5', '9', '0']}
maketh_new = {k: [int(i) if i.isdigit() else i for i in v] for k, v in maketh.items()}
输出:
{'n': [1, 2, 'a'], 'g': [0, 5, 6, 9], 'ca': [4, 8, 1, 5, 9, 0]}