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

时间:2013-01-03 21:16:01

标签: python dictionary

看起来简单但难以捉摸,想要使用一个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'}

10 个答案:

答案 0 :(得分:9)

这是我们最终使用的:

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'}

答案 1 :(得分:2)

使用str.splitines()str.split()

In [126]: strs="""A1023 CRT
   .....: A1029 Regulator
   .....: A1030 Therm"""

In [127]: dict(x.split() for x in strs.splitlines())
Out[127]: {'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'}
  

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

     

返回S中的行列表,在行边界处断开。线   除非给出了keepends,否则结果列表中不包括中断   并且是真的。

     

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

     

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

答案 2 :(得分:2)

for i in range(n):
    data = input().split(' ')
    d[data[0]] = data[1]
for keys,values in d.items():
    print(keys)
    print(values)

答案 3 :(得分:2)

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)

答案 4 :(得分:1)

假设您有变量s中的文字:

dict(map(lambda l: l.split(), s.splitlines()))

答案 5 :(得分:1)

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)

INPUT:

3

A1023 CRT

A1029 Regulator

A1030 Therm

注意:我为每个输入添加了一个额外的行,用于获取此站点上各行的每个输入。由于没有多余线条的放置会产生一条线。

输出:

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

答案 6 :(得分: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)

答案 7 :(得分: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)

答案 8 :(得分:0)

接受用户输入

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

dict = {}

for i in range(input):

    name = input() 

    values = int(input()) 

    dict[name] = values
print(dict)

答案 9 :(得分:-1)

我将空字典作为f并更新了f中的值,如名称,密码或余额为键。

f=dict()
f.update(name=input(),password=input(),balance=input())
print(f)