如何有条件地选择列表理解中的元素?

问题描述 投票:-1回答:1

我找不到与用例匹配的示例。仍然在python列表和字典中按照我的方式工作。

问题:

all_cars = ['cars':[{'name': 'audi', 'model': 'S7'}{'name': 'honda', 'model': 'accord'},{'name': 'jeep', 'model': 'wrangler'} ]}

owners = ['cars':[{'owner': 'Nick', 'car': 'audi'}{'owner': 'Jim', 'car': 'honda'},{'owner': 'Mike', 'name': 'mercedes'} ]}


def duplicate(): 
   for c in all_cars: 
     if c['name'] == [c['name'] for c in owner['cars']]: 
        pass_cars = c['name'] 
        pass 
     else: 
        res = print(c['name']) 
   return res  

output - ['honda', 'jeep'] ( with 'audi')
output = ['honda', 'jeep', audi'] ( with list comprehension of owners)

如何在不返回所有值的情况下循环遍历所有者的清单(目标)?使用'audi'的单个项目将返回所需的值。

接受所有建议!

python python-3.x list dictionary list-comprehension
1个回答
0
投票

要回答标题中的问题,您可以在列表理解期间使用语法[x for y in z if y == a]有条件地添加元素,其中y == a是您需要的任何检查-如果比较为True,则元素y将被添加到列表,否则将不会。

© www.soinside.com 2019 - 2024. All rights reserved.