ввода являетсяУпорядочить элементы в списке на основе состояния
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
И ожидается выход
[1, 4, 7, 2, 5, 8, 3, 6, 9]
Я хочу устраивать list1
на основе n
.
ввода являетсяУпорядочить элементы в списке на основе состояния
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
И ожидается выход
[1, 4, 7, 2, 5, 8, 3, 6, 9]
Я хочу устраивать list1
на основе n
.
list1 = [1,2,3,4,5,6,7,8,9]
n = 3
m = len(list1)
list2 = [list1[x%(m-1)] for x in range(0, n*(m-1), n)]
list2.append(list1[-1])
print list2
% - оператор modulo. В основном оператор диапазона повторяет от 0 до 3-кратной длины списка. Оператор modulo сопоставляет итерацию с правильным номером в пределах длины списка. К сожалению, последняя запись в списке не может быть достигнута с помощью этого метода, так как x% (m-1) будет равна нулю. Поэтому последнюю запись нужно рассматривать отдельно.
поэтому для 'n = 4' это' [1, 5, 1, 5, 1, 5, 1, 5, 9] ' –
Использовать zip()
в этом случае?
>>> [list1[i:i+n] for i in range(0, len(list1), n)]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list(zip(*[list1[i:i+n] for i in range(0, len(list1), n)]))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>>
>>>' n = 4' '[(1, 5, 9)] ' –
@xi_: Так что он должен дать, когда' n = 4'? –
хороший вопрос :) –
насчет:
list1 = [1,2,3,4,5,6,7,8,9]
n = 3
res = []
for i in range(n):
res += list1[i::n]
print(res)
разместить свои попытки .. –
Я единственный, кто не понимает состояние? – Idos
@Idos - Он подсчитывается по трем - 1, 4, 7, затем 2, 5, 8 и т. Д. – TigerhawkT3