Форум сайта python.su
Как лучше осуществить вставку между каждым элементом списка
Например есть список
pets = ["cat", "dog", "parrot", "hamster"]
pets = ["cat", "monkey", "dog", "monkey", "parrot", "monkey", "hamster"]
Офлайн
>>> l = ['1','2','3'] >>> '\tmonkey\t'.join(l).split('\t') ['1', 'monkey', '2', 'monkey', '3'] >>>
Офлайн
>>> pets = ['cat', 'dog', 'parrot', 'hamster'] >>> >>> pets = sum(([i, 'monkey'] for i in pets), [])[:-1] >>> pets ['cat', 'monkey', 'dog', 'monkey', 'parrot', 'monkey', 'hamster'] >>>
Офлайн
from itertools import repeat pets = ['cat', 'dog', 'parrot', 'hamster'] z = reduce(lambda x, y: x + y, zip(pets, repeat("monkey")), ())
Офлайн
FishHook, у тебя после hamster ставит monkey.
Офлайн
>>> pets = ["cat", "dog", "parrot", "hamster"] >>> reduce(lambda x, y: x +["monkey", y] if x else [y], pets, []) ['cat', 'monkey', 'dog', 'monkey', 'parrot', 'monkey', 'hamster']
Отредактировано Rodegast (Июль 24, 2017 17:09:05)
Офлайн
Си подход
>>> pets = ["cat", "dog", "parrot", "hamster"] >>> for index in range(len(pets) - 1, 0, -1): ... pets.insert(index, 'monkey') ... >>> pets ['cat', 'monkey', 'dog', 'monkey', 'parrot', 'monkey', 'hamster']
Офлайн