【问题标题】:How to create a dict with space, quotes, dots, double quotes and etc如何创建带有空格、引号、点、双引号等的字典
【发布时间】:2013-02-01 17:21:32
【问题描述】:

我在这里看到了这个问题 aDict 包含字母,但我怎么能包含空格、引号、点、双引号呢?

How to create a dict with letters as keys in a concise way?

这里怎么能包含空格、引号、点、双引号呢?谢谢

import string
aDict = dict(zip(string.ascii_lowercase, range(1, 27)))

【问题讨论】:

  • 所以你想要所有的标点符号,还是只想要你指定的?
  • 他们会映射到什么?您的示例将字母映射到 1-26,您希望如何映射标点符号?
  • 基于this answer:{x:i for i,x in enumerate(string.ascii_lowercase+"whatever")}
  • 我也想包括所有标点符号,包括字母和空格、引号、点、双引号......谢谢

标签: python dictionary converter


【解决方案1】:

通过这种方式,您可以创建一个 dict,其中 ascii 字符作为键,对应的数字作为值:

aDict = { chr(x):x for x in range(129) }

【讨论】:

  • 我喜欢这样...但是 127 是最后一个 ascii 字符,而不是 128。
【解决方案2】:

您可以通过从空格字符开始到(但不包括)\x7f 字符来获取所有可见字符。

{v: k for k, v in enumerate((chr(x) for x in range(ord(' '), ord('\x7f'))), 1)}

如果您想包含\t\n\r,您可以将它们链接起来。

import itertools

{v: k for k, v in
 enumerate(itertools.chain(('\t', '\n', '\r'),
                           (chr(x) for x in range(ord(' '), ord('\x7f')))),
           1)}

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    相关资源
    最近更新 更多