简体   繁体   English

转换字典中列表值的元素 Python

[英]convert Element of list value in Dictionary Python

I have a data like that我有这样的数据

[{'point1': ['20.900', '15.300', '20.400'], 
  'point2': ['0.600', '34.700', '8.100'], 
  'point3': ['12.100', '15.800', '2.300'], 
  'point4': ['15.000', '5.800', '16.900']}]

How can I convert the numbers into integers?如何将数字转换为整数?

You could use a loop:你可以使用一个循环:

for d in lst:
    for v in d.values():
        for i, num in enumerate(v):
            v[i] = int(float(num))

print(lst)

Output: Output:

[{'point1': [20, 15, 20],
  'point2': [0, 34, 8],
  'point3': [12, 15, 2],
  'point4': [15, 5, 16]}]

Try this in one line:在一行中试试这个:

l = [{'point1': ['20.900', '15.300', '20.400'], 'point2': ['0.600', '34.700', '8.100'], 'point3': ['12.100', '15.800', '2.300'], 'point4': ['15.000', '5.800', '16.900']}]

result = [{k: [int(float(i)) for i in v] for k, v in l[0].items()}]

The result will be:结果将是:

[{'point1': [20, 15, 20],
  'point2': [0, 34, 8],
  'point3': [12, 15, 2],
  'point4': [15, 5, 16]}]

a similar question asked already check that too: you can do this also:一个类似的问题已经问过了:你也可以这样做:

arr = [{
    'point1': ['20.900', '15.300', '20.400'], 
    'point2': ['0.600', '34.700', '8.100'], 
    'point3': ['12.100', '15.800', '2.300'], 
    'point4': ['15.000', '5.800', '16.900'],
    }]

[{k : list(map(float, v))  for k, v in point.items() } for point in arr]
array=[{'point1': ['20.900', '15.300', '20.400'], 'point2': ['0.600', '34.700', '8.100'], 'point3': ['12.100', '15.800', '2.300'], 'point4': ['15.000', '5.800', '16.900']}]
new_array=array[0]

for i in new_array.values():
    k=0
    for j in i:
        i[k]=int(float(j))
        k=k+1
        
print(new_array)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM