stu_dict = {raw_input():[float(raw_input()),float(raw_input()),float(raw_input())] for i in xrange(int(raw_input()))}
print stu_dict
对于上面的代码,Fox是关键,所有三个值都存储在列表(值)
中 I / P:
1
3
4
5
狐狸
o/p :
{'fox': [3.0, 4.0, 5.0]}
如何更改上面的代码,在一行中接受fox 3 4 5?
注意:到目前为止给出的所有解决方案,我都知道这些,我想要的是什么 直接从输入中取出fox 3 4 5(在同一行)(不存储在字符串中)并直接放入键,值字典对(这里的值是一个包含3个值的列表)。
答案 0 :(得分:1)
如果列表的值以单行提供,则使用此 -
>>>stu_dict = {raw_input(): map(float,raw_input().split()) for _ in raw_input()}
1
3 4 5
fox
>>>stu_dict
{'fox': [3.0, 4.0, 5.0]}
如果您按照相关描述提供输入,请使用此 -
>>> stu_dict = {raw_input(): [float(raw_input()) for i in xrange(3)] for _ in raw_input()}
1
3
4
5
fox
>>> stu_dict
{'fox': [3.0, 4.0, 5.0]}
答案 1 :(得分:0)
以字符串形式输入您的输入split(" ")
和map()
或循环播放。请查看以下示例。
在下面的示例中,您可以使用三个以上的数字,然后是" fox"或其他任何东西。
示例:强>
stra = "fox 3 4 5"
dicta = {stra.split(" ")[0]:list(map(float, stra.split(" ")[1:]))}
print dicta # {'fox': [3.0, 4.0, 5.0]}
答案 2 :(得分:0)
您可以使用split()
字符串方法将输入字符串:'3 4 5'
拆分为字符串列表['3','4','5']
。并使用float()
函数将这些转换为整数值。 -
>>> stu_dict = {raw_input():[float(x) for x in raw_input().split()] for _ in raw_input()}
1
3 4 5
fox
>>> stu_dict
{'fox': [3.0, 4.0, 5.0]}
答案 3 :(得分:0)
你可以这样做:
l = input('Enter stuff: ').split()
stu_dict = {l[0]: [float(i) for i in l[1:]]}
{'fox': [3.0, 4.0, 5.0]}
请确保以字符串格式输入:
'fox 3 4 5'