My_list = ["zero", "wow", "peach", 3, 4, "nice", "pickle"] Quiero imprimir "wow", "nice", "peach" Entonces: my_list [1] .. .

0
Py_Student 10 abr. 2021 a las 08:08

6 respuestas

La mejor respuesta

Puede utilizar una lista por comprensión para devolver una lista de valores:

[my_list[i] for i in [1, 5, 2]]

O imprimir uno por uno:

for i in [1, 5, 2]:
    print(my_list[i])

O como 1 línea usando el operador de desempaquetado de argumentos (*) para "aplanar" un generador:

print(*(my_list[i] for i in [1, 5, 2]), sep='\n')
3
Nick 10 abr. 2021 a las 05:15

Puedes usar operator.itemgetter

>>> from operator import itemgetter
>>> my_list = ["zero", "wow", "peach", 3, 4, "nice", "pickle"]
>>> itemgetter(1, 5, 2)(my_list)
('wow', 'nice', 'peach')
3
python_user 10 abr. 2021 a las 05:12

Uso:

print(*map(lambda x: my_list[x], [1, 5, 2]))

Salida:

 wow nice peach
1
Amit Vikram Singh 10 abr. 2021 a las 05:15

También puedes usar la comprensión de listas

>>> [my_list[x] for x in [1, 5, 2]]
['wow', 'nice', 'peach']

O incluso

>>> [print(my_list[x]) for x in [1, 5, 2]]
wow
nice
peach

1
Jack Campbell 10 abr. 2021 a las 05:17

Si a alguien le gusta una forma simple sin ninguna biblioteca de sintaxis de aspecto complejo, ¡esta podría ser una solución!

Para hacer que el código se vea limpio, la mejor manera es tener una función que lo haga más limpio y también tenga más funciones.

Código:

def printList(list, *index, all=False):
    if all:
        for item in list:
            print(item)
    else:
        for i in index:
            print(list[i])

my_list = ["zero", "wow", "peach", 3, 4, "nice", "pickle"]

printList(my_list, 1, 5, 2) # To print some elements
print("---------------------------")
printList(my_list, all=True)

Salida:

wow
nice
peach
---------------------------
zero
wow
peach
3
4
nice
pickle
1
Jaysmito Mukherjee 10 abr. 2021 a las 05:25

my_list = ["zero", "wow", "peach", 3, 4, "nice", "pickle"]



print(*list(map(my_list.__getitem__, [1,5,2])))

-2
DilLip_Chowdary 10 abr. 2021 a las 06:18