我有一堆字符串,全部在一行上,由一个空格分隔。 我想将这些值存储在地图中,第一个字符串作为键,以及一组剩余值。 我正在尝试
map = {}
input = raw_input().split()
map[input[0]] = input[1:-1]
除了省去最后一个元素外,还有效。 我找到了
map[input[0]] = input[1:len(input)]
有效,但我宁愿使用更像前者的东西
(例如,输入类似于“键值1值2值3”
我想要一张像地图一样的地图
{'key':['value1','value2','value3']}
但我目前的方法给了我
{'key':['value1','value2']}
)
答案 0 :(得分:5)
那是因为您指定-1
作为要转到的索引 - 只需将索引留下以转到列表的末尾。 E.g:
input[1:]
有关列表切片语法的更多信息,请参阅here。
注意一个替代方案(我觉得它更好,更易读),如果你使用的是Python 3.x,那就是使用extended iterable unpacking:
key, *values = input().split()
map[key] = values
答案 1 :(得分:2)
myDict = {}
for line in lines:
tokens = line.split()
map[tokens[0]] = tokens[1:]
可替换地:
def lineToPair(line):
tokens = line.split()
return tokens[0],tokens[1:]
myDict = dict(lineToPair(x) for x in lines)