Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用枚举函数创建字典时,将条目压缩到字典中_Python_Dictionary_List Comprehension_Enumerate_Dict Comprehension - Fatal编程技术网

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}}
话虽如此,您的解决方案是非常可读的,我更喜欢它而不是这个。但这是最接近你所尝试的