Самый простой и быстрый способ - использовать условный оператор для конкретного значения, которое вы ищете в цикле.
if i == 2 or i == 5:
new_list.append(i)
Недостаток этого подхода состоит в том, что если вам нужно расширить диапазон значений, которые вы хотите получить, вам нужно будет написать самое длинное условие if i == 1 or i == 5 ... or i == N:
, это не только плохо, но и плохая практика программирования, потому что код трудно поддерживать.
Лучший способ - создать список со значениями, которые вы хотите получить, и проверить, является ли этот элемент фактическим элементом, прежде чем добавлять его в новый список.
list2 = ['1','2','3','4','5']
wanted = ['2','5'] #what I search
my_list = []
for value in list2:
if value in wanted: #when value is what a I want, append it
my_list.append(value)
Однако, если вы хотите добавить элементы по их положению, чтобы не найти все вхождения определенного значения, вы можете использовать список целых чисел и зациклить его, чтобы добавить нужные элементы.
positions = [1,4] #indicates the positions from which I want to retrieve elements
new_list = [list[p] for p in positions] #using list comprehension for brevity
Примечание
Последнее, что я хотел бы добавить, это то, что в python вы не можете выполнить
my_list.append(i[0,4])
потому что python, когда смотрит на [0,4], будет интерпретировать его так, как будто вы передаете кортеж ( из-за запятой ), и выдаст следующую ошибку TypeError: list indices must be integers or slices, not tuple
.