#python#请帮我解决以下问题

代码如下

b={'das':'qqq','aaa':'wwww','asd':'as'}
a=['das','asd','ddd','aaa']
for h in a:
    (key,value),={ h+'asd':v for k,v in b.items() if os.path.split(k)[1]== h }.items()
    print(key,value)

报错

img

当a的值未能全部存在于b的时候,会报错,请问该如何在不影响输出的情况下
不报错或者弹出 存在于 a但不存在b的值

解决不了,写成两条

那你就别总追求写一个看起来简单实际上复杂的语句
不要都写在一行
把中间结果保存到中间变量
判断非空,再继续往下进行
你现在报错是没有足够的值来拆箱,因为你默认items()的结果一定是(a,b),c这样的结构。先判断不是None再这样做