我有固定格式的字典,例如:
dict = {1111: {'vehicle_id': 1111, 'vehicle_capacity': 800},
3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}}
我想得到的输出是:
list_dict1 = [{1111: {'vehicle_id': 1111, 'vehicle_capacity': 800}]
list_dict2 = [{3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}]
dict
的格式无法更改,我试图通过调用键(1111和3333)来获取它,但是输出将显示没有键的情况。有人可以帮助我吗?
答案 0 :(得分:4)
一线解决方案:
>>> d = {1111: {'vehicle_id': 1111, 'vehicle_capacity': 800},
3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}}
>>> lst = [dict([(key, value)]) for key, value in d.items()]
[{1111: {'vehicle_id': 1111, 'vehicle_capacity': 800}}, {3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}}]
所以dict.items()
是一种可迭代格式访问字典项的简单方法。然后通过使用list comprehension,如何转换它完全取决于您的想象力。
请注意,dict
is a reserved keyword in Python是创建字典的类构造函数。最好不要在代码中隐藏其绑定。
答案 1 :(得分:1)
这完全可以满足您的要求,两个function getNormalizedLocationPath($path)
{
$path = is_scalar($path) ? strtolower(trim($path)) : '';
$path = preg_replace('/[^a-z0-9.]/', '', $path);
return $path;
}
$path=getNormalizedLocationPath($_GET['path']);
$sql= "INSERT INTO paths VALUES (${path})";
$pdo = new PDO();
$pdo->query($sql);
包含一个list
(尽管顺序不同)。
在交互式python shell中逐步进行学习。首先设置变量:
dict
现在您可以在for循环中遍历键了:
>>> test = {1111: {'vehicle_id': 1111, 'vehicle_capacity': 800}, 3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}}
>>> test
{3333: {'vehicle_id': 3333, 'vehicle_capacity': 4800}, 1111: {'vehicle_id': 1111, 'vehicle_capacity': 800}}
我们现在需要的是生成要动态实现的列表的变量名。 We may use >>> for key in test:
... print(key)
...
3333
1111
。因此,让我们enumerate
原始vars()
的{{1}}来获得每个key
的数字序列(您可能想查看zip
来进行类似的操作以及)。想法是将列表的基础名称dict
与顺序整数key
串联起来,以动态生成变量。 list_dict
循环中的num
可用于设置每个key
中for
的{{1}}以及访问原始key
获取并分配相应的值。
dict
答案 2 :(得分:0)
您可以尝试遍历字典项,然后将整个字典存储到列表中吗?像
list_dict1 = []
list_dict2 = []
for k, v in dict.items():
if k == 1111:
list_dict1.append({k: v})
else:
list_dict2.append({k: v})
我假设您正在寻找词典列表。
答案 3 :(得分:0)
要遍历字典获取键和值,请使用以下循环:
for key, value in dict.items()
使用此功能,您可以在列表中获取所有必需的值和键。
答案 4 :(得分:0)
list_all_dict = []
for key, value in dict.items():
list_cur = []
list_cur.append({key:value})
list_all_dict.append(list_cur)
列表dict的每个元素都是对应的列表。
答案 5 :(得分:0)
您可以先获取字典的键 然后将其添加到列表中。
keys = list(dict1.keys())
list_dict1 = [{keys[0]: dict1[keys[0]]}]
list_dict2 = [{keys[1]: dict1[keys[1]]}]
它将为您提供完全相同的输出