【问题标题】: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 使用自动编号向字典添加键的方法,例如$values[]

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

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

【问题讨论】:

    标签: python dictionary key


    【解决方案1】:
    values = collections.defaultdict(list)
    for rows in query:
      values[rows.id].append(rows.name)
    return values
    

    【讨论】:

      【解决方案2】:

      只是一般说明:

      1. Python 的字典是没有顺序的映射,而添加数字键将允许“顺序”访问,在迭代的情况下,不能保证顺序与键的自然顺序一致。
      2. 最好不要从 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
          

          编辑:忘记返回值。

          【讨论】:

            猜你喜欢
            • 2016-10-10
            • 1970-01-01
            • 2010-11-28
            • 1970-01-01
            • 2011-04-06
            • 2016-07-03
            • 1970-01-01
            • 2012-06-24
            相关资源
            最近更新 更多