list.append(elapse):
       if len(list) > 50:
          raise Exception(list_2.append(elapse))
       else:
          list.append(elapse)

Я понятия не имею, как это отформатировать, я просто хочу, чтобы после того, как list[] достигнет больших размеров, новые записи будут перенаправлены в list_2[], в моем исходном коде нет raise Exception() просто { { Х3 } } . Я только в старшей школе, 6-я неделя информатики, поэтому я не слишком много знаю жаргон.

1
End Globalism 5 Мар 2018 в 00:22

4 ответа

Лучший ответ

Вы можете просто использовать конструкцию if / else следующим образом:

if len(lst_1) >= 50:
    lst_2.append(elapse)
else:
    lst_1.append(elapse)

Но подумайте о вашем случае использования. Рассмотрим эти вопросы:

  • Почему ваш список ограничен? Это то, что может быть объяснено ниже по течению?
  • Будет ли у вас неопределенное количество списков? Если это так, рассмотрите возможность использования словаря списков или списка списков.
3
jpp 4 Мар 2018 в 22:24

Просто создайте двухслойный список:

mainList = [] # create the mainList to hold each list with 50 values in 
while True:
    innerList = [] # create the list to hold the 50 items
    for x in range(50): # run through your code 50 times to add 50 items to the list
        yourValue = 0 # your code to add to the list
        innerList.append(yourValue) # add the value
    mainList.append(innerList) # add the list of 50 values to the mainList

Это означает, что вы можете иметь бесконечное количество 50 списков предметов, а не ограничивать себя жестко закодированным количеством списков :)

3
Zak Stucke 4 Мар 2018 в 21:38

Вы сами решаете, к какому списку добавить, например, троичный оператор :

list_to_append = list1 if len(list1) < 50 else list2
list_to_append.append(elapse)

Итак, сначала мы проверяем, len(list1) < 50. Если это так, мы устанавливаем list_to_append = list1, в противном случае мы устанавливаем list_to_append = list2. Затем мы добавляем в этот список.

Пожалуйста, не называйте переменные такими вещами, как list, set, dict и т. Д. Так как это переопределит ссылку на классы с тем же именем.

1
Willem Van Onsem 4 Мар 2018 в 21:39

Во-первых, вы не можете назвать list, потому что list является встроенным именем питона.

Поэтому назовите их list1 и list2 (что угодно, кроме list.

Конечно, вы не создаете исключение, как в python.

list1 = []
list2 = []
if len(list1) > 50: # Check if list1 is full
    list_2.append(elapse) # append to list2 if list1 is full
else:
    list1.append(elapse)   #if list1 is not > 50, append to list1 

Если вы хотите, вы можете использовать elif для проверки длины списка list2.

Вы можете иметь столько elif операторов, сколько пожелаете, но else всегда последний.

list1 = []
list2 = []
if len(list1) > 50:
    list_2.append(elapse)
elif list2 > 50:
    print('OUT OF LISTS!!')
else:
    list1.append(elapse) 

Если вы хотите перехватывать исключения, то есть, если это не список, вы можете заключить его в try / except состояние.

list1 = []
list2 = []
try:
    if len(list1) > 50:
        list_2.append(elapse)
    elif list2 > 50:
        print('OUT OF LISTS!!')
    else:
        list1.append(elapse)
except TypeError:
    print('Not a List!!')

Некоторое чтение для вас:

Обработка ошибок: https://docs.python.org/3/tutorial/errors.html

{ } { } Х0 elif` : https://docs.python.org/3/tutorial/controlflow.html

1
johnashu 4 Мар 2018 в 21:36