我试图掌握将for循环转换为列出理解的语法。
我了解非常基本的知识,
[expression **for** item **in** list **if** conditional]
但是,我有一个for循环,该循环将值存储在中间变量中。我是Python的新手,所以对我来说这可能是草率的编码:
for n in wf:
if n == 'Table of Contents':
continue
name = wf[n].iloc[1,2]
store_list.append(name)
我不确定如何将name
变量存储在列表推导中。我需要储存吗?有没有更好的方法编写此代码?
store_list1=[]
store_list1 = [name = wf[n].iloc[1,2], store_list1.append(name) for n in wf if not == 'Table of Contents']
上面的代码以等号返回语法错误...有人可以向我解释一下是否有可能将此特殊的for循环编码为列表理解吗?预先感谢,
答案 0 :(得分:4)
尝试一下
store_list1 = [wf[n].iloc[1,2] for n in wf if n != 'Table of Contents']
答案 1 :(得分:2)
从注释中添加的上下文来看,wf
是字典。因此,不要两次查找密钥-而是要成对迭代wf
的 items :
store_list = [v.iloc[1,2] for k, v in wf.items() if k != 'Table of Contents']