似乎有些人回答错了问题。你说你想做:
>>> first_item, last_item = some_list[0,-1]
>>> print first_item
'1'
>>> print last_item
'F'
即,您想将第一个和最后一个元素分别提取到单独的变量中。
在这种情况下,Matthew Adams、pemistahl 和 katrielalex 的回答是有效的。这只是一个复合作业:
first_item, last_item = some_list[0], some_list[-1]
但后来你陈述了一个复杂的问题:“我将它拆分在同一行,那将不得不花时间将它拆分两次:”
x, y = a.split("-")[0], a.split("-")[-1]
因此,为了避免两次 split() 调用,您只能对拆分一次的列表进行操作。
在这种情况下,试图在一行中做太多事情会损害清晰度和简单性。使用变量来保存拆分结果:
lst = a.split("-")
first_item, last_item = lst[0], lst[-1]
其他回答回答了“如何获得一个由列表的第一个和最后一个元素组成的新列表?”的问题。根据仔细阅读您的问题,他们可能受到您的标题的启发,其中提到了您实际上不想要的切片。
AFAIK 是用列表的第 0 个和最后一个元素获取新列表的 3 种方法:
>>> s = 'Python ver. 3.4'
>>> a = s.split()
>>> a
['Python', 'ver.', '3.4']
>>> [ a[0], a[-1] ] # mentioned above
['Python', '3.4']
>>> a[::len(a)-1] # also mentioned above
['Python', '3.4']
>>> [ a[e] for e in (0,-1) ] # list comprehension, nobody mentioned?
['Python', '3.4']
# Or, if you insist on doing it in one line:
>>> [ s.split()[e] for e in (0,-1) ]
['Python', '3.4']
列表理解方法的优点是元组中的索引集可以是任意的并且可以通过编程方式生成。