List vs Dict和using-Zip:List(Zip)工作正常,但Dict(Zip)是一个li

2024-04-26 07:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Python3,我得到了分配给变量值的字符串的摩尔斯码列表:

values = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

我还有字符串格式的字母表,转换成列表并分配给键:

keys = list('abcdebghigklmnopqrstuvwxyz')

现在我使用zip()将两者结合起来,并将其分配给我的\u dict

my_dict =zip(keys,values)

如果我将我的字典转换为列表:

my_dict = list (my_dict)

print (my_dict)

我得到这个输出:

[('a', '.-'), **('b', '-...'),** ('c', '-.-.'), ('d', '-..'), ('e', '.'), ('b', '..-.'), ('g', '--.'), ('h', '....'), ('i', '..'), ('g', '.---'), ('k', '-.-'), ('l', '.-..'), ('m', '--'), ('n', '-.'), ('o', '---'), ('p', '.--.'), ('q', '--.-'), ('r', '.-.'), ('s', '...'), ('t', '-'), ('u', '..-'), ('v', '...-'), ('w', '.--'), ('x', '-..-'), ('y', '-.--'), ('z', '--..')]

这就是我所期望的,每个索引都是前两个列表的组合。你知道吗

但是,当我将my_dict转换为字典并打印时:

my_dict = dict(my_dict)

print (my_dict)

我得到这个输出(抱歉,似乎无法正确发布):

{'y': '-.--', 'c': '-.-.', 'o': '---', 'r': '.-.', 'a': '.-', 't': '-', 'g': '.---', 'v': '...-', 'z': '--..', 'e': '.', 'w': '.--', 'n': '-.', 'i': '..', 'l': '.-..', 'h': '....', 'q': '--.-', 'm': '--', 's': '...', 'p': '.--.', 'x': '-..-', 'k': '-.-', 'u': '..-', 'd': '-..', **'b': '..-.'**}

我的问题是。。。我知道那本字典很乱。但为什么“b”的值不同: 第一个输出打印这个('b','-…'),这是正确的,我理解 第二个输出打印这个“b”:“..-”,这没有意义。你知道吗

‘a’‘c’‘d’和其他人似乎都很好。。。。你知道吗


Tags: 字符串列表字典my格式keyszipdict
1条回答
网友
1楼 · 发布于 2024-04-26 07:31:30

你的字母表有2个b:

keys = list('abcdebghigklmnopqrstuvwxyz')
              ^   ^
       | -|

因此,当您创建字典时,第二个映射将覆盖第一个映射。此外,您的字典将没有f键。还要注意的是,有2个g和j丢失。你知道吗

相反,您可以使用string.ascii_lowercase

from string import ascii_lowercase

print(ascii_lowercase)

abcdefghijklmnopqrstuvwxyz

相关问题 更多 >