Прошу помощи с решением задачи на питоне
В базе данных хранится список настоящих пользователей вашего сервиса, среди которых есть несколько тестовых. На первой строке программа получает полный список всех пользователей, а на второй – индексы тестовых пользователей в списке. Используя цикл for, напечатайте только имена настоящих пользователей в одну строку.
Sample Input 1:
Alice, Bob, Charlie, Dave, Eve
1, 3
Sample Output 1:
Alice Charlie Eve
Sample Input 2:
Alice, Bob, Charlie
0, 2
Sample Output 2:
Bob
Я решил так
full_list=input().split(", ") # full_list=['Alice', 'Bob', 'Charlie', 'Dave', 'Eve']
indexes=list(map(int, input().split(", "))) # indexes=[1, 3]
real_list=[]
for i, text in enumerate(full_list):
if indexes[0]==i:
continue
if indexes[1]==i:
continue
real_list.append(text)
print(*real_list)
В песочницах все хорошо, ответы правильные, а на образовательном курсе решение не проходит. Выдает
Failed test #3 of 3. Runtime error
Error:
Traceback (most recent call last):
File "jailed_code", line 8, in <module>
if indexes[1]==i:
IndexError: list index out of range
Попробовал через while
full_list=input().split(", ")
a,b=list(map(int, input().split(", ")))
i=0
names_of_real_users=[]
while len(full_list)>i:
names_of_real_users=full_list[i]
i=i+1
if names_of_real_users==full_list[a]:
continue
if names_of_real_users==full_list[b]:
continue
print(names_of_real_users, end=" ")
На это раз ошибка:
Failed test #3 of 3. Runtime error
Error:
Traceback (most recent call last):
File "jailed_code", line 3, in <module>
a,b=list(map(int, input().split(", ")))
ValueError: not enough values to unpack (expected 2, got 1)
Ответы (2 шт):
А если индексов 3 или 1?
#full_list=input().split(", ")
full_list=['Alice', 'Bob', 'Charlie', 'Dave', 'Eve']
#indexes=list(map(int, input().split(", ")))
indexes=[1, 3]
real_list=[]
for i,name_f in enumerate(full_list):
if i in indexes:
continue
real_list.append(name_f)
print(*real_list)
Alice Charlie Eve
Спасибо @MBo увидел мою ошибку
Почти всё сделано правильно. Осталось собрать индексы в множество и отфильтровать список:
users = input().split(', ')
indices = set(map(int, input().split(', ')))
print(*(name for i, name in enumerate(users) if i not in indices))
$ echo -e "Alice, Bob, Charlie, Dave, Eve\n1, 3" | python real-users.py Alice Charlie Eve $ echo -e "Alice, Bob, Charlie\n0, 2" | python real-users.py Bob