2010-02-10 37 views
1

我從數據庫中提取行並希望填充多維字典。Python equiv。的PHP foreach []?

PHP版本將大致這樣:

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

return $values; 

我似乎無法找出了以下問題:

  • 什麼是Python的方式來使用密鑰添加到字典自動編號例如$ values []

  • 如何使用變量填充Python字典;例如,使用values [id] = name,不會添加鍵,而是覆蓋現有的鍵。

我完全不知道如何實現這一點,因爲我是一名Python初學者(實際上編程)。

回答

4

只是一般的提示:

  1. Python的字典是沒有順序的映射,同時增加了數字鍵將使「連續」的訪問,在迭代的情況下,有沒有保證,爲了將與鍵的自然順序一致。
  2. 最好不要從PHP翻譯成Python(或任何其他語言),而應該使用適合該特定語言的正確代碼。看看許多相同/相似的開源代碼,你甚至可以找到一個有用的模塊(庫)。
2
all_rows=[] 
    for row in query: 
     all_rows.append(row['col']) 
    print(all_rows) 
8
values = collections.defaultdict(list) 
for rows in query: 
    values[rows.id].append(rows.name) 
return values 
1

你可以這樣做:

from collections import defaultdict 

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

return values 

編輯:忘記返回的值。