【问题标题】:Python equiv. of PHP foreach []?Python 等价物。 PHP foreach [] 的?
【发布时间】:2010-02-10 19:39:19
【问题描述】:
我正在从数据库中获取行并希望填充多维字典。
php 版本大概是这样的:
foreach($query as $rows):
$values[$rows->id][] = $rows->name;
endforeach;
return $values;
我似乎找不到以下问题:
我完全不知道如何实现这一点,因为我是一名 Python 初学者(实际上是一般的编程)。
【问题讨论】:
标签:
python
dictionary
key
【解决方案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
编辑:忘记返回值。