2017-08-04 51 views
0

多個詞典循環最好的辦法我謹字典通過在Python

user = { 
    'name': 'Bob', 
    'age': '11', 
    'place': 'moon', 
    'dob': '12/12/12' 
} 

user1 = { 
    'name': 'John', 
    'age': '13', 
    'place': 'Earth', 
    'dob': '12/12/12' 
} 

什麼是加1,通過每個用戶環路的最佳方式?所以下一個用戶將是user2。

感謝

+6

當你開始編號的變量,你正在做的事情wron G。請使用列表。這可以說是循環任何事情的「最佳方式」。 –

+0

非常感謝! 偉大的工作 – smye

回答

4

而是因爲你可以創建一個新的字典變量,其中的關鍵是用戶和值是一個嵌套的字典中所有的關於用戶的這樣的信息字典中的變量名指派用戶user1 :

users = { 
    'user1': { 
     'name': 'John', 
     'age': '13', 
     'place': 'Earth', 
     'dob': '12/12/12' 
     }, 
    'user2': { 
     'name': 'Bob', 
     'age': '11', 
     'place': 'moon', 
     'dob': '12/12/12' 
     } 
    ...} 

然後你可以遍歷嵌套的字典對所有用戶USER1,用戶2,...用戶N,而不是每一個用戶自己的可變分配。

更新: 這裏是你會怎麼然後在嵌套詞典循環:

for k, v in users.items(): 
    print(k, v) 

其中k是關鍵(「用戶1」,「用戶2」等)和v是包含信息的嵌套字典爲用戶。

+0

當然,這是理智的答案。 –

+0

你提供了正確的答案 - 但你忘記了 - 即使它看起來很愚蠢,你應該添加一個如何循環進入你的詞典來真正回答的例子OP – Arount

+0

謝謝你的幫助 - 我決定去解決你的問題。 @Arount沒關係,我已經做到了。 – smye

0

你可以做到這一點,利用globalslocals根據您的範圍:

>>> for i in range(2): 
...  print(globals()['user' + str(i)]) 
... 
{'name': 'Bob', 'age': '11', 'place': 'moon', 'dob': '12/12/12'} 
{'name': 'John', 'age': '13', 'place': 'Earth', 'dob': '12/12/12'} 

但正如評論所說,我會建議使用一個列表:

>>> users = [user0, user1] 
>>> for i in range(2): 
...  print(users[i]) 
... 
{'name': 'Bob', 'age': '11', 'place': 'moon', 'dob': '12/12/12'} 
{'name': 'John', 'age': '13', 'place': 'Earth', 'dob': '12/12/12'} 
+1

在第二個循環'用戶在用戶'比使用方式好指標! –

+0

爲建議歡呼 – smye

0

的最簡單方法處理這個(在我看來有一個列表中的字典 我只會使用字典,如果鍵實際上意味着什麼,下面也是一個有效的字典轉換爲json。

users = [{ 
      'name': 'John', 
      'age': '13', 
      'place': 'Earth', 
      'dob': '12/12/12' 
      }, 
      { 
      'name': 'Bob', 
      'age': '11', 
      'place': 'moon', 
      'dob': '12/12/12' 
      }] 

user1的用戶[0],user2的用戶是[1] ...

users.append({...}),以增加更多的等

如果你和循環希望用戶數:

for ind,item in enumerate(users): 
    print("user{}".format(ind+1)) 

打印:

user1 
user2