Python разрезает список на 200 и справляется с остатками - PullRequest
0 голосов
/ 25 июня 2019

давайте предположим, что есть список с именем 'user_ids', как показано ниже

>>> len(user_ids)
>>> 742

Я хочу нарезать список на 200 после 742/200 -> 3 раза, осталось 142 материала с результатом, я хочу, чтобы он снова был в списке. результат будет иметь то же значение с ниже

sliced_list = [user_ids[0:199],user_ids[200:399],user_ids[400:599],user_uds[600:742]]

Я хочу создать цикл для работы со списком user_ids независимо от того, сколько у него материалов.

Я не могу понять, с чего начать ..... есть идеи?

Ответы [ 4 ]

1 голос
/ 25 июня 2019

Попробуйте, это будет работать с любой длиной user_ids

sliced_list = []
for u in range(0, len(user_ids), 200):
    sliced_list.append(user_ids[u: u + 200])

или со списком

[user_ids[u: u + 200] for u in range(0, len(user_ids), 200)]
0 голосов
/ 25 июня 2019

Мы можем использовать функцию диапазона вместе со значением шага для чистого одного вкладыша.

sliced_ids = [user_ids[i:i+200] for i in range(0, len(user_ids), 200)]

Если один вкладыш уродлив для глаз, то следующий цикл for сделает свое дело:

sliced_ids = []
slice_length = 200
for i in range(0, len(user_ids), slice_length):
    sliced_ids.append(user_ids[i:i+slice_length])

Я предпочитаю один вкладыш, а не второй. Но не собираюсь судить, если использовать второй подход.

0 голосов
/ 25 июня 2019

Возможное решение:

print([l[200*i:200*(i+1)] for i in range(len(user_ids) // 200)])
0 голосов
/ 25 июня 2019

Я думаю, что это должно работать, но я уверен, что есть более красивый способ

tempList = []
for i in range(len(user_ids):
    if i % 200 == 0:
        newList.append(tempList)
        tempList = []
    tempList.append(user_ids[i])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...