間違った質問に答えている人もいるようです。あなたはやりたいと言った:
>>> 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]
しかし、後であなたは複雑さを述べます:「私はそれを同じ行に分割しています、そしてそれはそれを2回分割するのに時間を費やさなければならないでしょう:」
x, y = a.split("-")[0], a.split("-")[-1]
したがって、2つのsplit()呼び出しを回避するには、1回の分割の結果であるリストのみを操作する必要があります。
この場合、1行でやりすぎを試みると、明快さと単純さが損なわれます。変数を使用して、分割結果を保持します。
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']
リスト内包表記アプローチの利点は、タプル内のインデックスのセットを任意にプログラムで生成できることです。