Python 在使用枚举函数创建字典时,将条目压缩到字典中
有没有一种方法可以把下面的内容写在一行上Python 在使用枚举函数创建字典时,将条目压缩到字典中,python,dictionary,list-comprehension,enumerate,dict-comprehension,Python,Dictionary,List Comprehension,Enumerate,Dict Comprehension,有没有一种方法可以把下面的内容写在一行上 x = {item: i for i, item in enumerate([letters for letters in ascii_lowercase])} x[' '] = 27 我试过类似的东西 x = {item: i for i, item in enumerate([letters for letters in ascii_lowercase]), ' ': 27} 但是运气不好。假设ascii\u小写来自内置的字符串模块,您可以这样做
x = {item: i for i, item in enumerate([letters for letters in ascii_lowercase])}
x[' '] = 27
我试过类似的东西
x = {item: i for i, item in enumerate([letters for letters in ascii_lowercase]), ' ': 27}
但是运气不好。假设
ascii\u小写
来自内置的字符串模块,您可以这样做:
{item: i for i, item in enumerate(ascii_lowercase + ' ')}
但是索引序列应该从0还是1开始?您可以通过enumerate
的start
参数进行控制(默认值为0)
如果序列必须是基于0的,并且需要跳过索引26,则需要执行以下操作
{item: i for i, item in (*enumerate(ascii_lowercase), (27, ' '))}
假设
ascii\u lowercase
来自内置字符串模块,您可以执行以下操作:
{item: i for i, item in enumerate(ascii_lowercase + ' ')}
但是索引序列应该从0还是1开始?您可以通过enumerate
的start
参数进行控制(默认值为0)
如果序列必须是基于0的,并且需要跳过索引26,则需要执行以下操作
{item: i for i, item in (*enumerate(ascii_lowercase), (27, ' '))}
使用dict扩展的Python>=3.5解决方案
x = {**{item: i for i, item in enumerate(ascii_lowercase)}, **{' ' : 27}}
话虽如此,您的解决方案是非常可读的,我更喜欢它而不是这个。但这是最接近您尝试的解决方案。Python>=3.5使用dict扩展的解决方案
x = {**{item: i for i, item in enumerate(ascii_lowercase)}, **{' ' : 27}}
话虽如此,您的解决方案是非常可读的,我更喜欢它而不是这个。但这是最接近你所尝试的