Nếu bạn có nhiều biến và bạn không muốn mã hóa từ điển của bạn, đây là một cách.
LƯU Ý: bạn cần phải có tất cả các biến được khai báo.
Ngoài ra, bạn cần khai báo danh sách tên biến.
list_of_var_names = ['triangles', 'circles', 'squares']
dict(zip(index, [dict(zip(list_of_var_names, i))
for i in (globals().get(i) for i in list_of_var_names)]))
Và để chia từng bước:
In [1]: index = [1,2,3]
...:
...: triangles = [4,5,6]
...: circles = [7,8,9]
...: squares = [10,11,12]
...:
In [2]: list_of_var_names = ['triangles', 'circles', 'squares']
In [3]: [globals().get(i) for i in list_of_var_names] # getting list of variable values in list_of_var_names order
Out[3]: [[4, 5, 6], [7, 8, 9], [10, 11, 12]]
In [4]: [dict(zip(list_of_var_names, i)) for i in (globals().get(i) for i in lis
...: t_of_var_names)]
Out[4]:
[{'circles': 5, 'squares': 6, 'triangles': 4},
{'circles': 8, 'squares': 9, 'triangles': 7},
{'circles': 11, 'squares': 12, 'triangles': 10}]
In [5]: dict(zip(index, [dict(zip(list_of_var_names, i))
...: for i in (globals().get(i) for i in list_of_var_names)]
...:))
...:
Out[5]:
{1: {'circles': 5, 'squares': 6, 'triangles': 4},
2: {'circles': 8, 'squares': 9, 'triangles': 7},
3: {'circles': 11, 'squares': 12, 'triangles': 10}}
tôi muốn đề cập đến thời gian thêm một rằng giải pháp này nếu tốt nếu bạn nhận được một tấn của các biến và bạn không muốn dứt khoát tuyên bố dict hiểu . Trong các trường hợp khác, nó sẽ phù hợp hơn và dễ đọc hơn khi sử dụng các giải pháp khác được trình bày ở đây.
Hãy cho chúng tôi những gì bạn đã cố gắng cho đến nay? –