Не знаю, почему в коде ошибка. Список для обнаружения остатка от 3 и сортировки по другим спискам - PullRequest
0 голосов
/ 20 июня 2020

Ниже мой код и ошибка, которую я получаю при запуске:

src_list = [12,45,34,13,100,24,56,74,109]
n = 0
a_list = []
b_list = []
c_list = []
for i in range(len(src_list)):
    if src_list[n] % 3 = 0:
        a_list.append(src_list[n])
    elif src_list[n] % 3 = 1:
        b_list.append(src_list[n])
    else:
        c_list.append(src_list[n])
    n = n+1
print(a_list)
print(b_list)
print(c_list)

Ошибка: SyntaxError:bad input on line 7

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Ошибка не использует сравнение ==. Также есть несколько других вещей, которые сделают ваш код более pythoni c:

src_list = [12,45,34,13,100,24,56,74,109]
a_list = []
b_list = []
c_list = []
for n, i in enumerate(src_list):
    if src_list[n] % 3 == 0:
        a_list.append(src_list[n])
    elif src_list[n] % 3 == 1:
        b_list.append(src_list[n])
    else:
        c_list.append(src_list[n])
print(a_list)
print(b_list)
print(c_list)
  1. Вам не нужно range(len(...)) для итерации по вашему списку. Список можно повторять с помощью for i in list_name:
  2. . Вы можете использовать enumerate для создания индекса. При этом вам не нужно вручную увеличивать n с каждым шагом.
0 голосов
/ 20 июня 2020

В строке условия if и elif вы не сравниваете значения. Вместо этого вы пытаетесь присвоить значение с помощью одного знака оператора =.

Для сравнения вам нужно 2 == знаков.

Вот как вы должны это сделать:

src_list = [12,45,34,13,100,24,56,74,109]
n = 0
a_list = []
b_list = []
c_list = []
for i in range(len(src_list)):
    if src_list[n] % 3 == 0:
        a_list.append(src_list[n])
    elif src_list[n] % 3 == 1:
        b_list.append(src_list[n])
    else:
        c_list.append(src_list[n])
    n = n+1
print(a_list)
print(b_list)
print(c_list)
...