我是python的新手,我试图了解以下内容:
"".join(char for char in input if not unicodedata.category(char).startswith('P'))
来源:https://stackoverflow.com/a/11066443/3818487
此代码从输入中删除所有unicode标点符号。我不明白为什么会这样。据我所知,它只是迭代输入中忽略标点字符的所有字符。如何在for循环中声明之前访问char?我来自java背景,所以这对我来说非常困惑。
答案 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)
理解首先迭代循环部分,值在左侧迭代。