Python 从具有非none值的元组创建dict
我有一个Python 从具有非none值的元组创建dict,python,Python,我有一个元组,在下面给出的代码中有许多None值(如ref中所示)。我正在使用主代码中其他地方定义的ref和self.entries创建一个dictionary def parsing_write(self, filename): # print(self.booklist) datalist = [] writer = BibTexWriter() writer.indent = ' ' for ref in self.booklist:
元组
,在下面给出的代码中有许多None
值(如ref
中所示)。我正在使用主代码中其他地方定义的ref
和self.entries
创建一个dictionary
def parsing_write(self, filename):
# print(self.booklist)
datalist = []
writer = BibTexWriter()
writer.indent = ' '
for ref in self.booklist:
print(type(ref))
print(ref)
datadict = dict(zip(self.entries, ref))
datalist.append(datadict)
print(type(datadict))
print(type(datalist))
print(datalist)
代码的结果(如下所示)显然包含无值键,如(函数的完整输出):
('article','ebert2011','\\textit{从头算}通过线性响应形式计算吉尔伯特阻尼参数,'Ebert,H.和Mankovsky,S.和K{\\'o}dderitzsch,D.和Kelly,P.J.,'Phys.Rev.Lett',None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None)
[{'Number':无,'bookstitle':无,'Crossred':无,'author':'Ebert,H.和Mankovsky,S.和K{\\'o}Dedritzsch,D.和Kelly,P.J.,“系列”:无,“出版商”:无,“组织”:无,“地址”:无,“章节”:无,“注释”:无,“出版商”:无,“注释”:无,“月”:无,“类型”:无,“机构”:无,“版本”:无,“年”:无,“标题”:“\\textit{从头开始}”通过线性响应形式计算Gilbert阻尼参数,“‘ENTRYTYPE’:‘article’,‘Editor’:无,‘journal’:‘Phys.Rev.Lett’,‘ID’:‘ebert2011’,‘Page’:无,‘HowPublished’:无,‘Pages’:无,‘School’:无}]
但是我希望dict只包含非None
值的键和值。
我如何才能做到这一点?使用生成器理解功能过滤掉
无的值:
datadict = dict((k, v) for k, v in zip(self.entries, ref) if v is not None)
你也可以在2.7+中使用听写理解:
datadict = {k: v for k, v in zip(self.entries, ref) if v is not None}
使用生成器筛选出None
:
datadict = dict((k, v) for k, v in zip(self.entries, ref) if v is not None)
你也可以在2.7+中使用听写理解:
datadict = {k: v for k, v in zip(self.entries, ref) if v is not None}
使用dict理解来过滤这些值:
datadict = {k: v for k, v in zip(self.entries, ref) if v is not None}
有关理解如何工作的更多信息,请参阅。使用dict理解筛选这些值:
datadict = {k: v for k, v in zip(self.entries, ref) if v is not None}
有关理解如何工作的更多信息,请参阅。您想要什么?潜在的重复:@zondo:{'journal':'Phys.Rev.Lett','title':'\\texit{从头算}通过线性响应形式计算吉尔伯特阻尼参数,'ENTRYTYPE':'article','ID':'ebert2011','author':'Ebert,H.和Mankovsky,S.和K{\\“o}dderitzsch,D.和Kelly,P.J.}
,大概。你想要什么?潜在的重复:@zondo:{'journal':'Phys.Rev.Lett','title':'\\texit{从头开始}通过线性响应形式计算吉尔伯特阻尼参数,'ENTRYTYPE':'article','ID':'ebert2011','author':'Ebert,H.和Mankovsky S.和K{“o}迪里奇,D.和凯利,P.J.}
,大概是这样。