Если я правильно понимаю, вы хотите напечатать элементы userName в строках по 4. Если последняя строка не заполнена, просто завершите строку в любом случае, например так:
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 |
ДляДля облегчения демонстрации в следующем коде я сократил HTML посередине, но он все равно должен работать.Здесь мы можем позволить Python отслеживать работу позиций, используя срезы массива (то есть, если x = [1,2,3,4]
, то x[0:2]
равно [1,2]
, поскольку x[a,b]
означает подсписок x
, начинающийся с индексаa
и продолжение для b
элементов).
Таким образом, мы можем выполнить цикл по набору нужных нам строк и вырезать значения столбцов следующим образом:
userName = ['Name1', 'Name2', 'Name3', 'Name4', 'Name5', 'Name6', 'Name7']
row_length = 4
html_card = ''
for i in range(0, len(userName), row_length):
html_card += '<div class="row">'
for element in userName[i:i+row_length]:
html_card += '\n<div class="col">{element </div>\n'.format(element=element)
html_card += '</div>\n'
print(html_card)
Itбыло намного легче увидеть, что происходит в коде, упрощая HTML.Один из способов сделать это - создать строку вне цикла, которую можно использовать в качестве шаблона с вызовом формата.