【发布时间】:2020-01-14 22:37:04
【问题描述】:
我找不到任何符合我用例的示例。仍然在 python 列表和字典中使用我的方式。
问题:
all_cars = {'total_count': 3,'cars': [{'name': 'audi','model': 'S7'}, {'name': 'honda', 'model': 'accord'},{'name': 'jeep', 'model': 'wrangler'} ]}
owners = {'users':[{'owner': 'Nick', 'car': 'audi'},{'owner': 'Jim', 'car': 'ford'},{'owner': 'Mike', 'car': 'mercedes'} ]}
def duplicate():
for c in all_cars['cars']:
if c['name'] == [c['users']for c in owners['users']]:
pass
else:
res = print(c['name'])
return res
output = ['honda', 'jeep', audi']
和
def duplicate():
for c in all_cars['cars']:
if c['name'] == 'audi':
pass
else:
res = print(c['name'])
return res
output - ['honda', 'jeep']
我正在尝试使用列表理解在两个字典中查找匹配值,然后仅返回不匹配的值。
解决方案:使用 'in' 而不是 '==' 运算符,我能够比较两个列表之间的值并跳过重复项。
def duplicate():
for c in all_cars['cars']:
if c['name'] in [c['users']for c in owners['users']]:
pass
else:
res = print(c['name'])
return res
【问题讨论】:
-
你想要的输出是什么?
-
您的“列表推导”不是有效的 Python 语法。请更新您正在使用的数据的实际格式。
-
你能改写你的问题吗?它的措辞有点混乱。
-
@Nick 我想返回一个不重复值的列表。
-
@SunnyPatel 我刚刚更新了格式和列表理解。
标签: python python-3.x list dictionary list-comprehension