Добавить и удалить, чтобы проверить, есть ли текст в списке - PullRequest
0 голосов
/ 27 мая 2018

n-й комментарий удаляется, а n-е имя пользователя проверяется в других комментариях, и если n-е имя пользователя присутствует не во всех комментариях (n-й комментарий уже удален), оно будет передано / добавлено в warn_usernames, а затем n-й комментарий получитснова добавил в комментариях.Цикл продолжается

usernames = ["a", "b", "c"]
warn_usernames = []
comments = [["b"], ["a", "c"], ["a", "b"]]

n = 0
while n < len(usernames):
    commente = comments[n]
    print(commente)
    usernamee = usernames[n]
    print(usernamee)
    comments.pop(n)
    if str(usernamee) not in str(comments):
       warn_usernames.append(usernamee)
    comments.insert(n, commente)
    n = n + 1
print(warn_usernames)

результат я получаю

[]

результат, который я ожидаю получить

[c]

Заранее спасибо, и я надеюсь, что вы получили мой вопрос.

1 Ответ

0 голосов
/ 28 мая 2018

Я думаю, вы можете сделать это следующим образом:

usernames = ["a", "b", "c"]
warn_usernames = []
comments = [["b"], ["a", "c"], ["a", "b"]]
# use a loop for with enumerate on usernames to get a username and its index
for n, username in enumerate(usernames):
    #loop on all others comments than the nth
    for comments_to_check in comments[:n]+comments[n+1:]:
        #check the username is in comments_to_check and 
        if username not in comments_to_check:
            # append to warn_usernames if not
            warn_usernames.append(username)
            # stop the loop on comments to go to the next loop on usernames
            # to prevent multiple time the same username to be appened
            break 
print warn_usernames

Вы получите ожидаемый результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...