Какой самый питонный способ расширить список с помощью обращения другого? - PullRequest
1 голос
/ 05 марта 2010

У меня есть один список, из которого я хочу взять фрагмент, перевернуть этот фрагмент и добавить каждый из этих элементов в конец другого списка. Ниже приведены варианты, о которых я подумал (хотя, если у вас есть другие, поделитесь, пожалуйста), какой из них наиболее питонический?

# Option 1
tmp = color[-bits:]
tmp.reverse()
my_list.extend(tmp)

# Option 2
my_list.extend(list(reversed(color[-bits:])))

# Option 3
my_list.extend((color[-bits:])[::-1])

Ответы [ 3 ]

3 голосов
/ 05 марта 2010

Мне нравится

my_list.extend(reversed(color[-bits:]))

Это объясняет, что вы делаете (расширяете список путем реверса среза другого списка) и тоже короткое.

и обязательное решение itertools

my_list.extend( itertools.islice( reversed(color), 0, bits))
0 голосов
/ 05 марта 2010

Для варианта № 2 вы можете отключить вызов на list. Вы также можете использовать += вместо extend, например:

my_list += reversed(color[-bits:])
0 голосов
/ 05 марта 2010
my_list.extend(color[:-(bits + 1):-1])
...