Python - 从第二个到最后一个元素获取子集

Ced*_*Ced 0 python map set

我有一堆字符串,全部在一行上,由一个空格分隔.我想将这些值存储在地图中,第一个字符串作为键,以及一组剩余值.我在尝试

map = {}
input =  raw_input().split()
map[input[0]] = input[1:-1]
Run Code Online (Sandbox Code Playgroud)

除了最后一个元素之外,它有效.我已经找到

map[input[0]] = input[1:len(input)]
Run Code Online (Sandbox Code Playgroud)

有效,但我宁愿使用更像前者的东西

(例如,输入类似于"键值1值2值3"我想要像
{'key':['value1','value2','value3']}这样的地图
但是我当前的方法给了我
{'key':[ 'value1','value2']})

Gar*_*tty 5

那是因为你指定-1了要转到的索引 - 只需将索引保留在列表的末尾即可.例如:

input[1:]
Run Code Online (Sandbox Code Playgroud)

有关列表切片语法的更多信息,请参见此处.

注意一个替代方案(我觉得它更好,更可读),如果你使用的是Python 3.x,那就是使用扩展的可迭代解包:

key, *values = input().split()
map[key] = values
Run Code Online (Sandbox Code Playgroud)