Wygląda na to, że niektórzy ludzie odpowiadają na niewłaściwe pytanie. Mówiłeś, że chcesz to zrobić.
>>> first_item, last_item = some_list[0,-1]
>>> print first_item
'1'
>>> print last_item
'F'
Czyli chcesz wyodrębnić pierwsze i ostatnie elementy każdego na oddzielne zmiennych.
W tym przypadku odpowiedzi udzielone przez Matthew Adams, pemistahl i katrielalex są ważne. Jest to po prostu przypisanie związek:
first_item, last_item = some_list[0], some_list[-1]
Ale później stwierdzić powikłanie: „Jestem dzieląc go w tej samej linii, i że będzie musiał spędzić czas dzieląc go dwukrotnie:”
x, y = a.split("-")[0], a.split("-")[-1]
Aby więc uniknąć dwóch wywołań split(), musisz operować tylko na liście, która jest wynikiem podziału na jeden raz.
W tym przypadku próba wykonania zbyt dużej liczby wierszy jest szkodliwa dla przejrzystości i prostoty.Użyć zmiennej trzymać podziału wynik: „Jak dostać nową listę, składającą się z pierwszych i ostatnich elementów listy”
lst = a.split("-")
first_item, last_item = lst[0], lst[-1]
Inne odpowiedzi udzielić odpowiedzi na pytanie, Prawdopodobnie zainspirował ich twój tytuł, który wymienia krojenie, którego tak naprawdę nie chcesz, zgodnie z uważną lekturą twojego pytania.
AFAIK są 3 sposoby, aby zdobyć nową listę z 0TH i ostatnich elementów listy:
>>> 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']
Zaletą podejścia lista ze zrozumieniem, jest to, że zestaw wskaźników w krotce może być dowolna i generowane programowo.
Haha 3 odpowiedzi, identycznych, na przestrzeni 2 sekundy, a jeden był twój. Klasyczny. – Aesthete
Co jest złego w przypadku 'first, last = some_list [0], some_list [-1]'? –
@MatthewAdams Ponieważ dzielę go na tę samą linię i musiałbym poświęcić czas na podzielenie go dwukrotnie: 'x, y = a.split (" - ") [0], a.split (" - ") [ -1] '. – chown