Python|字典值中的类型转换
常规类型转换的问题非常普遍,可以使用Python库的内置转换器轻松完成。但有时,我们可能需要在更复杂的场景中使用相同的功能。用于字典列表的键。让我们讨论一些可以实现这一目标的方法。
方法#1:朴素的方法
在朴素的方法中,我们使用了 2 个嵌套循环。一个用于列表中的所有字典,第二个用于特定字典中的字典键值对。
Python3
# Python3 code to demonstrate
# Type conversion in list of dicts.
# using naive method
# initializing list of dictionary
test_list = [{'a' : '1', 'b' : '2'}, { 'c' : '3', 'd' : '4'}]
# printing original list
print ("The original list is : " + str(test_list))
# using naive method
# type conversation in list of dicts.
for dicts in test_list:
for keys in dicts:
dicts[keys] = int(dicts[keys])
# printing result
print ("The modified converted list is : " + str(test_list))
Python3
# Python3 code to demonstrate
# Type conversion in list of dicts.
# using items() + list comprehension
# initializing list of dictionary
test_list = [{'a' : '1', 'b' : '2'}, { 'c' : '3', 'd' : '4'}]
# printing original list
print ("The original list is : " + str(test_list))
# using items() + list comprehension
# type conversation in list of dicts.
res = [dict([key, int(value)]
for key, value in dicts.items())
for dicts in test_list]
# printing result
print ("The modified converted list is : " + str(res))
输出 :
The original list is : [{'a': '1', 'b': '2'}, {'c': '3', 'd': '4'}]
The modified converted list is : [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}]
方法 #2:使用 items() + 列表理解
这可以在列表理解的帮助下仅使用一行轻松执行。可以利用 items函数在需要时提取列表值,并且列表理解部分处理迭代部分。
Python3
# Python3 code to demonstrate
# Type conversion in list of dicts.
# using items() + list comprehension
# initializing list of dictionary
test_list = [{'a' : '1', 'b' : '2'}, { 'c' : '3', 'd' : '4'}]
# printing original list
print ("The original list is : " + str(test_list))
# using items() + list comprehension
# type conversation in list of dicts.
res = [dict([key, int(value)]
for key, value in dicts.items())
for dicts in test_list]
# printing result
print ("The modified converted list is : " + str(res))
输出 :
The original list is : [{'b': '2', 'a': '1'}, {'c': '3', 'd': '4'}]
The modified converted list is : [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}]