Найти - Пользователи
Полная версия: Как получить такой список
Начало » Python для новичков » Как получить такой список
1
pyhappy
Как получить такой список
(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2)

я сделал следующий код, но не думаю что он оптимальный

rows=3
columns=4
n_col=[(x,)*columns for x in range(0,rows)] # готовим массив новых индексов колонок
n_col=tuple([ n_col[i][j] for i in range(0,rows) for j in range(0,columns)]) #обработанный массив
print(n_col)
py.user.next
>>> sum(((i,) * 4 for i in range(3)), ())
(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2)
>>>
pyhappy
занес в свою базу знаний, спасибо!
doza_and
Это для списка
r4=range(4);[i for i in r4 for j in r4]
pyhappy
doza_and
Это для списка
r4=range(4);[i for i in r4 for j in r4]
Супер! Нигде пока не видел, что можно добавить (j) не используемую переменную и получить такой эффект. Спасибо!!
Malinaizer
r4=range(4);
Еще бы объяснили почему так происходит?
py.user.next
doza_and
Это для списка
>>> r4=range(4);[i for i in r4 for j in r4]
[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
>>> r4=range(3);[i for i in r4 for j in r4]
[0, 0, 0, 1, 1, 1, 2, 2, 2]
>>>
pyhappy
Как получить такой список
(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2)
>>> sum(([i] * 4 for i in range(3)), [])
[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]
>>>
>>> lst = sum(([i] * 4 for i in range(3)), [])
>>> lst[0], lst[4] = 5, 6
>>> lst
[5, 0, 0, 0, 6, 1, 1, 1, 2, 2, 2, 2]
>>>
Isem
[k//4 for k in range(12)]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB