Создание списка палиндромов с помощью reverse ()

1

Я хочу взять список [0,1,2] и превратить его в [0,1,2,2,1,0]. Прямо сейчас у меня есть

r = list(mus)
r.reverse()
mus = mus + r

но кажется, что должен быть лучший способ. Может ли кто-нибудь придумать хороший питонический лайнер?

Теги:

2 ответа

3
Лучший ответ

Похоже, что вам может понадобиться

mus.extend(reversed(mus))

Или, если вам просто нужно перебирать это и не обязательно составлять список, используйте

import itertools
for item in itertools.chain(mus, reversed(mus)):
    do_something...
  • 0
    Ах, спасибо за предложение "продлить". Это было ключевым.
2

Только некоторые из многих способов сделать это:

  • m = l + reverse (l)
  • m = l + l [:: - 1]
  • l.extend(обратный (л))
  • l.extend(л [:: - 1])

Первые два назначают вывод в новый список, а второй второй обновляет список. Если бы я был умным, я бы, вероятно, использовал 2 или 4, но если бы я хотел, чтобы не было ошибки в том, что я делаю, тогда я бы выбрал 1 или 3.

Надеюсь, что это поможет.

Изменить: Как указано в комментариях, # 1 не работает, поскольку обратный возвращает итератор. Вы можете заставить его работать, изменив его на:

m = l + list (reverse (l))

Но я не могу это порекомендовать. Идите с 2 вместо.

Кстати, спасибо за исправление и извините за любую путаницу.

  • 0
    Ваш случай 1 не работает. ( reversed не возвращает список.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню