对于此列表:
mylist = ['a', 'b', 'c', 'd', 'm']
我需要创建一个查询,如下所示:
(("a"[Journal]) OR ("b" [Journal]) OR ("c" [Journal]) OR ("d" [Journal]) OR ("m" [Journal])) AND ("2007/01/01"[Date] : "2017/12/31"[Date])
我试图使用“ join”打印输出,但是我无法创建此查询。
有什么建议吗?答案 0 :(得分:4)
您确实需要join
和列表理解:
pieces = ['("{}" [Journal])'.format(j) for j in mylist]
journal_list = " OR ".join(pieces)
query = "({}) {}".format(journal_list, more_stuff)
more_stuff
是查询的“日期”部分(例如'AND ("2007/01/01"[Date] : "2017/12/31"[Date])'
。
另一种方法(较少使用Pythonic)是将格式函数应用于期刊列表:
pieces = map('("{}" [Journal])'.format, mylist)
journal_list = " OR ".join(pieces)
query = "({}) {}".format(journal_list, more_stuff)
结果当然是一样的。