声明之前访问的Python for循环控制变量

时间:2016-06-10 21:18:11

标签: python for-loop

我是python的新手,我试图了解以下内容:

    "".join(char for char in input if not unicodedata.category(char).startswith('P'))

来源:https://stackoverflow.com/a/11066443/3818487

此代码从输入中删除所有unicode标点符号。我不明白为什么会这样。据我所知,它只是迭代输入中忽略标点字符的所有字符。如何在for循环中声明之前访问char?我来自java背景,所以这对我来说非常困惑。

1 个答案:

答案 0 :(得分:2)

这种理解在常规代码中看起来更像是以下内容(使用列表来存储我们的非标点字符)。

#input is defined somewhere prior to the loop
output = []
for char in input:
    if not unicodedata.category(char).startswith('P'):
        output.append(char)
''.join(output)

理解首先迭代循环部分,值在左侧迭代。