11

1 つの Python ステートメントだけを使用して、スペースで区切られた [key,value] ペアの入力から dict を構築したい、単純なようですが、とらえどころのないものです。これは私がこれまでに持っているものです:

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

入力:

A1023 CRT
A1029 Regulator
A1030 Therm

望ましい出力:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
4

11 に答える 11

17

最終的に使用したのは次のとおりです。

n = 3
d = dict(raw_input().split() for _ in range(n))
print d

入力:

A1023 CRT
A1029 Regulator
A1030 Therm

出力:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
于 2014-01-05T04:50:34.417 に答える
4

str.splitlines()とを使用str.split():

strs="""A1023 CRT
        A1029 Regulator
        A1030 Therm"""
    
dict(x.split() for x in strs.splitlines())

結果:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}

より詳しい情報:

str.splitlines([keepends]) -> 文字列のリスト

S の行のリストを返し、行の境界で分割します。keepends が指定されて true でない限り、結果のリストに改行は含まれません。

str.split([sep [,maxsplit]]) -> 文字列のリスト

区切り文字列として sep を使用して、文字列 S 内の単語のリストを返します。maxsplit が指定されている場合、最大で maxsplit の分割が行われます。sep が指定されていないか、None の場合、空白文字列は区切り文字であり、空の文字列は結果から削除されます。

于 2013-01-03T21:20:28.743 に答える
2
for i in range(n):
    data = input().split(' ')
    d[data[0]] = data[1]
for keys,values in d.items():
    print(keys)
    print(values)
于 2016-09-30T18:52:53.613 に答える
1

variable にテキストがあると仮定しますs

dict(map(lambda l: l.split(), s.splitlines()))
于 2013-01-03T21:21:27.027 に答える
1
n=int(input())
pair = dict()

for i in range(0,n):
        word = input().split()
        key = word[0]
        value = word[1]
        pair[key]=value

print(pair)
于 2018-01-06T19:24:38.947 に答える