在python中解析字典中的列表
首先让我描述一下我所做的工作: 我有一本字典,名字叫awhere在python中解析字典中的列表,python,python-2.7,list-comprehension,Python,Python 2.7,List Comprehension,首先让我描述一下我所做的工作: 我有一本字典,名字叫awhere a={"A":[5],"B": ["ABCD"],"C":["HELLO"]} 每当我运行下面的代码时 print ['and '.join(key+"="+"'%s'" % a[key][0] for key in a)] 它给了我一个输出 ["A='5'and C='HELLO'and B='ABCD'"] 到目前为止还不错。现在假设我有一本字典b在哪里 b={"A":[5,6],"B": ["ABCD"],"C":["
a={"A":[5],"B": ["ABCD"],"C":["HELLO"]}
每当我运行下面的代码时
print ['and '.join(key+"="+"'%s'" % a[key][0] for key in a)]
它给了我一个输出
["A='5'and C='HELLO'and B='ABCD'"]
到目前为止还不错。现在假设我有一本字典b在哪里
b={"A":[5,6],"B": ["ABCD"],"C":["Hello"]}
稍微修改上述代码后:
print [' and '.join(key+"="+"'%s'" %str(value[0]) for key,value in b.iteritems() for each in value)]
我明白了
["A='5' and A='5' and C='Hello' and B='ABCD'"]
但我想:
["A='5' or A='5' and C='Hello' and B='ABCD'"]
我知道我没有放置或逻辑,但我不知道如何放置以及放置在何处。
有人能帮我解决这个问题吗
谢谢这应该可以做到:
[' and '.join([' or '.join([k + "=" + "'%s'"%str(v) for v in b[k]]) for k in b])]
输出:
["A='5' or A='6' and C='Hello' and B='ABCD'"]