2017-04-20 23 views
0

如何在0鍵中逐行輸入值,然後在1鍵中隨後輸入值?我們如何訪問這個關聯數組的整個值?如何訪問Python中的關聯數組

glyph = { 
    '0': [" ##### ", " ## ## ", "## ## ", "## ## ", "## ## ", " ## ## ", " ##### "], 
    '1': [" ## ", " #### ", " ## ", " ## ", " ## ", " ## ", " ###### "] 
} 
+0

'字形[0]'將讓你與「0」鍵關聯的值。同樣,glyph ['1']'會爲您提供與'1'鍵相關的值。在Python中,這些被稱爲字典,而不是關聯數組。 –

回答

1

像這樣:

for valuelist in glyph.values(): 
    for value in valuelist: 
     print(value) 


##### 
## ## 
## ## 
## ## 
## ## 
## ## 
##### 
## 
#### 
## 
## 
## 
## 
###### 

要訪問一個單獨的列表使用glyph['0']glyph['1']

要獲取所有值的列表,請使用list(glyph.values())

爲了讓他們到一個大列表,使用列表理解:

[i for j in glyph.values() for i in j]

注意,詞典都沒有排序,所以你可能需要做這樣的事情:

for valuelist in {key: glyph[key] for key in sorted(glyph)}: 
    for value in valuelist: 
     print(value) 

{key: glyph[key] for key in sorted(glyph)}創建一個基於一個sorted版本的glyph內嵌字典。

如果您想要訂購,請查看collections.OrderedDict。 如需進一步參考,請查閱「Python中的字典」。

0
[y for y in [x for x in glyph.values()]] 

List Comprehension Way。

+3

您可以直接使用雙迭代而不創建內部列表。 –

+3

這和'list(glyph.values())'一樣 - 不需要列表理解。 – rassar

1

除非這是SortedDict或其他非dict映射結構,否則無法保證您將按鍵的排序順序進行迭代。如果你關心得到'0'值,那麼'1'值,等等,你需要像這樣:

[x for x in glyph[y] for y in sorted(glyph.keys())]