Я использую Python 3, и мне нужно проверить 3 переменные в другом списке.Я хочу напечатать данные, если username
age
lang
отличается от другого списка
Вот мой код:
list1 = []
list2 = []
list1.append({'username' : 'alice', 'age' : 25, 'lang' : 'IT'})
list1.append({'username' : 'carole', 'age' : 40, 'lang' : 'FR'})
list1.append({'username' : 'john', 'age' : 30, 'lang' : 'FR'})
list1.append({'username' : 'mick', 'age' : 20, 'lang' : 'US'})
list1.append({'username' : 'mick', 'age' : 30, 'lang' : 'US'})
list2.append({'username' : 'mick-c', 'age' : 30, 'lang' : 'US'})
list2.append({'username' : 'john', 'age' : 30, 'lang' : 'FR'})
list2.append({'username' : 'john-b', 'age' : 30, 'lang' : 'FR'})
for l1 in list1:
username = l1['username']
age = l1['age']
lang = l1['lang']
for l2 in list2:
if username not in l2['username'] and l2['age'] != age and l2['lang'] != lang:
print(str(username) + ' ' + str(age) + ' ' + str(lang))
Вывод:
alice 25 IT
alice 25 IT
alice 25 IT
carole 40 FR
mick 20 US
mick 20 US
И мой ожидаемый результат был:
alice 25 IT
carole 40 FR
mick 20 US
Как я могу сделать так, чтобы в цикле не было дублированных данных?И есть другой способ сделать то, что я хочу, вместо использования двойных циклов?