Algunas personas están respondiendo la pregunta incorrecta, al parecer. Usted dijo que desea hacer:
>>> first_item, last_item = some_list[0,-1]
>>> print first_item
'1'
>>> print last_item
'F'
Es decir, desea extraer el primer y último elemento cada uno en variables separadas.
En este caso, las respuestas de Matthew Adams, pemistahl y katrielalex son válidas. Esto es sólo una asignación compuesta:
first_item, last_item = some_list[0], some_list[-1]
Pero más tarde que indicar una complicación: "Estoy partiéndolo en la misma línea, y que tendría que pasar tiempo dividiéndolo en dos ocasiones:"
x, y = a.split("-")[0], a.split("-")[-1]
Por lo tanto, para evitar dos llamadas split(), solo debe operar en la lista que resulta de dividir una vez.
En este caso, intentar hacer demasiado en una línea va en detrimento de la claridad y la simplicidad.Utilizar una variable para contener el resultado de división: "¿cómo obtener una nueva lista, que consta de los elementos primero y último de una lista"
lst = a.split("-")
first_item, last_item = lst[0], lst[-1]
Otras respuestas respondieron a la pregunta de Probablemente fueron inspirados por su título, que menciona rebanar, que en realidad no desea, según una lectura cuidadosa de su pregunta.
yo sepa son 3 maneras de obtener una nueva lista con el 0th y los elementos últimos de una lista:
>>> 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']
La ventaja del enfoque de lista por comprensión, es que el conjunto de índices en la tupla puede ser arbitraria y generado programáticamente
Jaja 3 respuestas, idénticas, en el lapso de 2 segundos, y uno era el suyo. Clásico. – Aesthete
¿Qué tiene de malo 'first, last = some_list [0], some_list [-1]'? –
@MatthewAdams Porque lo estoy dividiendo en la misma línea, y eso tendría que perder tiempo dividiéndolo dos veces: 'x, y = a.split (" - ") [0], a.split (" - ") [ -1] '. – chown