2013-03-02 17 views
0

我有兩個字符串(長度相同),我想創建一個字典,其中的鍵是一個字符串中的字符,其值與對應於其他字符串。使用兩個字符串填充字典以生成鍵值對

x='qwert' 
y='asdfg' 

然後,字典應該包含

d[q]='a' 
d[w]='s' 
d[e]='d' 
d[r]='f' 
d[t]='g' 

我試圖做這樣的事情

for i,j in x,y: 
    d[i]=j 

但是,這似乎並沒有在Python工作(因爲它會在C )。 我該怎麼做?

回答

9
d = dict(zip(x, y)) 

一個非常簡單的解決方案,您只需要兩個字符串zip在一起,然後將它們傳遞到dict構造。

擊穿:

  • zip(x, y)創建的元組的列表,團體是在字符串中的「同一位置」的字母。

    [('q', 'a'), ('w', 's'), ('e', 'd'), ('r', 'f'), ('t', 'g')] 
    
  • dict()接受兩個元件的元組的列表,並使得它們在字典中的鍵 - 值對。

    {'q': 'a', 'r': 'f', 'e': 'd', 't': 'g', 'w': 's'} 
    

    注意,字典中沒有出現的元組的順序 - 這是因爲字典是沒有順序的容器,而不是他們只是映射一個值到另一個。

+1

+1。 Python非常簡單,但在某些時候令人驚歎。另外,祝賀6k的聲望:) – TerryA 2013-03-02 09:14:39

+0

我很震驚,這是多麼容易。 @Haidro祝賀「404」代表。哦,廢話,我毀了它。 – 2013-03-02 09:18:13

+0

dict()構造函數是否在Python 2.7中工作?我一直得到這個錯誤:TypeError:'dict'對象不可調用 – OneMoreError 2013-03-02 09:20:33

相關問題