当前位置: 代码迷 >> python >> 相当于Python PHP foreach []?
  详细解决方案

相当于Python PHP foreach []?

热度:85   发布时间:2023-07-14 09:52:02.0

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

php版本大致如下:

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

return $values;

我似乎找不到以下问题:

  • 使用自动编号(例如$ values [])将键添加到字典的python方法是什么?

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

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

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

请注意:

  1. Python的字典是没有顺序的映射,而添加数字键将允许“顺序”访问,在迭代的情况下,不能保证顺序将与键的自然顺序一致。
  2. 最好不要从PHP转换为Python(或任何其他语言),而应使用适合该特定语言的正确代码。 看看许多执行相同/相似操作的开源代码,您甚至可能会找到有用的模块(库)。
   all_rows=[] 
   for row in query:
       all_rows.append(row['col'])
   print(all_rows)

你可以做:

from collections import defaultdict

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

return values

编辑:忘记返回值。

  相关解决方案