11

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

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 并且为真。

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

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

于 2013-01-03T21:20:28.743 回答
4
n = int(input("enter a n value:"))
d = {}

for i in range(n):
    keys = input() # here i have taken keys as strings
    values = int(input()) # here i have taken values as integers
    d[keys] = values
print(d)
于 2019-04-06T09:05:13.190 回答
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 回答
2
n = int(input())          #n is the number of items you want to enter
d ={}                     
for i in range(n):        
    text = input().split()     #split the input text based on space & store in the list 'text'
    d[text[0]] = text[1]       #assign the 1st item to key and 2nd item to value of the dictionary
print(d)

输入:

3

A1023 CRT

A1029 Regulator

A1030 Therm

注意:我为每个输入添加了一个额外的行,以便在此站点的各个行上获取每个输入。因为放置没有额外的线会创建一条线。

输出:

{'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
于 2017-04-08T15:46:11.053 回答
1

假设您在变量中有文本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 回答
0
record = int(input("Enter the student record need to add :"))

stud_data={}

for i in range(0,record):
    Name = input("Enter the student name :").split()
    Age = input("Enter the {} age :".format(Name))
    Grade = input("Enter the {} grade :".format(Name)).split()
    Nam_key =  Name[0]
    Age_value = Age[0]
    Grade_value = Grade[0]
    stud_data[Nam_key] = {Age_value,Grade_value}

print(stud_data)
于 2018-05-09T16:21:05.813 回答
0

我将一个空字典作为 f 并将 f 中的值更新为名称、密码或余额是键。

f=dict()
f.update(name=input(),password=input(),balance=input())
print(f)
于 2019-07-07T03:08:58.440 回答
0

从用户那里获取输入

input = int(input("enter a n value:"))

dict = {}


    name = input() 

    values = int(input()) 

    dict[name] = values
print(dict)
于 2020-06-29T15:28:10.660 回答
0

d = {}
count = 0
data = int(input("How many data do you want to enter?(numbers only): "))
while count < data:
    count = count + 1
    print("Enter a key")
    key = input()
    print("Enter a value")
    value = input()
    d[key] = value
    if count >= data:
        break

print(d)

于 2021-12-08T04:21:24.517 回答