问题描述
我正在从数据库中获取行,并希望填充多维字典。
php版本大致如下:
foreach($query as $rows):
$values[$rows->id][] = $rows->name;
endforeach;
return $values;
我似乎找不到以下问题:
使用自动编号(例如$ values [])将键添加到字典的python方法是什么?
如何使用变量填充Python字典; 例如,使用values [id] = name时,不会添加键,但会覆盖现有键。
我完全不知道如何实现这一目标,因为我是一名Python初学者(实际上,通常是编程)。
1楼
values = collections.defaultdict(list)
for rows in query:
values[rows.id].append(rows.name)
return values
2楼
请注意:
- Python的字典是没有顺序的映射,而添加数字键将允许“顺序”访问,在迭代的情况下,不能保证顺序将与键的自然顺序一致。
- 最好不要从PHP转换为Python(或任何其他语言),而应使用适合该特定语言的正确代码。 看看许多执行相同/相似操作的开源代码,您甚至可能会找到有用的模块(库)。
3楼
all_rows=[]
for row in query:
all_rows.append(row['col'])
print(all_rows)
4楼
你可以做:
from collections import defaultdict
values = defaultdict(list)
for row in query:
values[row.id].append(row.name)
return values
编辑:忘记返回值。