Python等价PHP的foreach []?

时间:2010-02-10 19:39:20

标签: python dictionary key

我从数据库中获取行并希望填充多维字典。

php版本大致如下:

foreach($query as $rows):
    $values[$rows->id][] = $rows->name;
endforeach;

return $values;

我似乎无法找出以下问题:

  • 使用自动编号将字符串添加到字典的python方法是什么? $值[]

  • 如何使用变量填充Python字典;例如,使用values [id] = name,不会添加键,而是覆盖现有的。

我完全不知道如何实现这一目标,因为我是一名Python初学者(实际上是编程)。

4 个答案:

答案 0 :(得分:8)

values = collections.defaultdict(list)
for rows in query:
  values[rows.id].append(rows.name)
return values

答案 1 :(得分:4)

只是一般性说明:

  1. Python的词典是没有顺序的映射,而添加数字键则允许“顺序”访问,在迭代的情况下,不能保证顺序与键的自然顺序一致。
  2. 最好不要从PHP翻译成Python(或任何其他语言),而是将该代码称为该特定语言的惯用语。看一下做同样/类似事情的许多开源代码,你甚至可以找到一个有用的模块(库)。

答案 2 :(得分:2)

   all_rows=[] 
   for row in query:
       all_rows.append(row['col'])
   print(all_rows)

答案 3 :(得分:1)

你可以这样做:

from collections import defaultdict

values = defaultdict(list)
for row in query:
    values[row.id].append(row.name)

return values

编辑:忘记返回值。