My_list = ["ноль", "вау", "персик", 3, 4, "хорошо", "рассол"] Я хочу напечатать "вау", "красиво", "персик" Итак: my_list [1] .. .

0
Py_Student 10 Апр 2021 в 08:08

6 ответов

Лучший ответ

Вы можете использовать понимание списка, чтобы вернуть список значений:

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

Или распечатать по одному:

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

Или как однострочник, используя оператор распаковки аргументов (*), чтобы «сгладить» генератор:

print(*(my_list[i] for i in [1, 5, 2]), sep='\n')
3
Nick 10 Апр 2021 в 05:15

Вы можете использовать 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 Апр 2021 в 05:12

Использование:

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

Выход:

 wow nice peach
1
Amit Vikram Singh 10 Апр 2021 в 05:15

Вы также можете использовать понимание списка

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

Или даже

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

1
Jack Campbell 10 Апр 2021 в 05:17

Если кому-то нравится простой способ без какой-либо библиотеки сложного синтаксиса, это может быть решением!

Чтобы код выглядел чистым, лучше всего иметь для него функцию, которая делает его более чистым и имеет больше функций.

Код:

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)

Вывод:

wow
nice
peach
---------------------------
zero
wow
peach
3
4
nice
pickle
1
Jaysmito Mukherjee 10 Апр 2021 в 05:25

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



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

-2
DilLip_Chowdary 10 Апр 2021 в 06:18