как я могу создать список из списка лагера и только 3 позиции в новом списке в Python

#python

#питон

Вопрос:

как я могу создать список из списка лагера и только 3 позиции в новом списке в Python

 list = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21)  

Может ли это быть так?

 list = (1,5,9,12,15,18,21)  

Комментарии:

1. Во-первых, не перезаписывайте встроенную list функцию, во-вторых (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21) , это не список.

2. Вы имеете в виду взять каждый третий предмет? Тогда почему нет выхода [1,4,7,10...] ?

Ответ №1:

Вы можете использовать slicing :

 list1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21] list1[::4]  
 gt;gt;gt; [1, 5, 9, 13, 17, 21]  

также не используйте список в качестве имени списка

Комментарии:

1. Это возвращает [1, 5, 9, 13, 17, 21] не 12, 15, 18

2. @Говорит «да», и, согласно его объяснению, это то, чего он хочет, несмотря на то, что желаемый результат выглядит по-другому

3. спасибо тебе, братан 😀

4. @Фанстил не прблемо 😉

Ответ №2:

Первый раз участвую здесь, но этого будет достаточно:

 my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]   new_list = []  for i in range(1, len(my_list) 1, 4):  new_list.append(i)  print(new_list)