gpt4 book ai didi

python - 缩写字典 PYTHON

转载 作者:行者123 更新时间:2023-11-30 23:10:03 28 4
gpt4 key购买 nike

我正在寻找一个字典,将字母表中的每个字母设置为其数值,例如 a:1 像这样。

alphabet = dict([ (chr(97+i), i+1) for i in range(0, 26) ])

但是,一旦到达 z,我需要字母表再次循环,但值必须从 26 继续,例如 z:26、a:27、b:28 等。我如何在不手动写出字典的情况下做到这一点?

最佳答案

你实际上并不想这样做,你只是认为你这样做!字典不能有重复的键,这实际上是不可能的。

>>> d = {'a': 1, ..., 'a':27}  # doesn't work the way you think it does!
>>> d
{'a': 27} # where'd the a->1 mapping go!

您应该做的是编写一个执行查找的函数,并使用模运算符 % 来“换行”范围。

def char_lookup(ord_):
"""Maps 1->a, 2->b, etc. Handles 27->a, 28->b, ..."""
OFFSET = 97
return chr((ord_-1) % 26 + OFFSET)

然后,不要执行 d[27] 并获取 'a',而是执行 char_lookup(27)

正如 Lattyware 在评论中指出的那样,您可能正在尝试获取给定字符的一系列值,而不是给定一系列值的字符。在这种情况下,您可以执行以下操作:

import string
d = {ch:[i, i+26] for i,ch in enumerate(string.ascii_lowercase, start=1)}

d 然后看起来像:

{'a': [1, 27], 'b': [2, 28], ...}

关于python - 缩写字典 PYTHON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com