Использовать встроенный питон lst.count()
a = 11
bla = [1,2,3,4,5,6,7,8,9,10]
# get number of times a occurs in bla
cnt = bla.count(a)
# if cnt isn't zero then lista becomes a repeated cnt times, otherwise just not found
lista = [a] * cnt if cnt >= 1 else ["not found"]
print(lista)
>>>["not found"]
Редактировать:
Жан-Франсуа Фабр предложил более питонную версию для строительства lista
:
lista = [a] * cnt or ["not found"]
[1110 ] Редактировать 2:
Если вы хотите сделать что-то похожее для словарей, вам нужно только реализовать функцию подсчета для себя. Я превратил пользователя в строковый литерал, поскольку составление списка и выполнение user[0]
каждый раз бессмысленно:
user = 'john'
user_details = [{u'UserName': u'fred', u'LastSeen': u'a'}, {u'UserName': u'freddy', u'LastSeen': u'b'}]
# get the count
cnt = sum(i['UserName'] == user for i in user_details)
#do what we did before
lista = [user] * cnt or ["not found"]
Редактировать 3:
Наконец, если вы хотите использовать цикл for, проверьте, не найден ли он в конце, а не на каждом шаге:
user = ['john']
user_details = [{u'UserName': u'fred', u'LastSeen': u'a'},{u'UserName': u'freddy', u'LastSeen': u'b'}]
lis = []
for element in user_details:
if element['UserName'] == user[0]:
lis.append(element)
if not lis: lis.append("not found")
Эту строку называют WinVersionTooLowError
и определяется как
This program requires %1 version %2 or later.
Можно переопределить его в [Messages]
раздел.