使用两个字符串填充字典以生成键值对

One*_*ror 0 python

我有两个字符串(长度相同),我想创建一个字典,其中键是一个字符串中的字符,其值与另一个字符串中的字符相对应.

x='qwert'
y='asdfg'
Run Code Online (Sandbox Code Playgroud)

然后,字典应该包含

d[q]='a'
d[w]='s'
d[e]='d'
d[r]='f'
d[t]='g'
Run Code Online (Sandbox Code Playgroud)

我尝试过做这样的事情

for i,j in x,y:
   d[i]=j
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于python(就像在C中一样).我怎样才能做到这一点 ?

Vol*_*ity 10

d = dict(zip(x, y))
Run Code Online (Sandbox Code Playgroud)

相当简单的解决方案,您只需zip将两个字符串放在一起,然后将它们传递给dict构造函数.

分解:

  • zip(x, y) 创建一个元组列表,用于对字符串中"相同位置"的字母进行分组.

    [('q', 'a'), ('w', 's'), ('e', 'd'), ('r', 'f'), ('t', 'g')]
    
    Run Code Online (Sandbox Code Playgroud)
  • dict() 获取两个元素元组的列表,并使它们成为字典中的键值对.

    {'q': 'a', 'r': 'f', 'e': 'd', 't': 'g', 'w': 's'}
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,字典没有按元组的顺序出现 - 这是因为字典不是有序容器,而是只是将值映射到另一个.