根据输入值在Python中创建字典

Bet*_*cts 6 python dictionary

看似简单但难以捉摸,想要使用只有一个Python语句从空格分隔的[key,value]对的输入构建一个dict.这是我到目前为止:

d={}
n = 3
d = [ map(str,raw_input().split()) for x in range(n)]
print d
Run Code Online (Sandbox Code Playgroud)

输入:

A1023 CRT
A1029 Regulator
A1030 Therm
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
Run Code Online (Sandbox Code Playgroud)

Bet*_*cts 9

这就是我们最终使用的内容:

n = 3
d = dict(raw_input().split() for _ in range(n))
print d
Run Code Online (Sandbox Code Playgroud)

输入:

A1023 CRT
A1029 Regulator
A1030 Therm
Run Code Online (Sandbox Code Playgroud)

输出:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
Run Code Online (Sandbox Code Playgroud)


Ash*_*ary 5

使用str.splitlines()str.split()

strs="""A1023 CRT
        A1029 Regulator
        A1030 Therm"""
    
dict(x.split() for x in strs.splitlines())
Run Code Online (Sandbox Code Playgroud)

结果:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
Run Code Online (Sandbox Code Playgroud)

更多信息:

str.splitlines([keepends]) -> 字符串列表

返回 S 中的行列表,在行边界处断开。除非给出 keepends 并且为真,否则换行符不会包含在结果列表中。

str.split([sep [,maxsplit]]) -> 字符串列表

返回字符串 S 中的单词列表,使用 sep 作为分隔符字符串。如果给出 maxsplit,则最多完成 maxsplit 分割。如果未指定 sep 或为 None,则任何空白字符串都是分隔符,并且将从结果中删除空字符串。