通常将For循环转换为列表推导

时间:2018-09-21 14:46:02

标签: python python-3.x

我试图掌握将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循环编码为列表理解吗?预先感谢,

2 个答案:

答案 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']