Dictionary Torehension生成内置类型的值

use*_*044 1 python dictionary python-2.7 dictionary-comprehension

我想做一个词典理解来获得一个内置类型str为值的键列表.

headers = ['Header1', 'Header2', 'Header3']
print dict([(x,str) for x in headers])
Run Code Online (Sandbox Code Playgroud)

输出:

{'Header2': <type 'str'>, 'Header3': <type 'str'>, 'Header1': <type 'str'>}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{'Header2': str, 'Header3': str, 'Header1': str}
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 5

这样做有内置的字典str在里面.

<type 'str'>是由于print调用将__str__在打印时使用从调用对象获得的值.这个价值str<type 'str'>.

如果您保存的字典,访问成员之一,并使用它,你会看到它str类:

>>> d = dict([(x,str) for x in headers])
>>> d['Header1'](123)
'123'
Run Code Online (Sandbox Code Playgroud)