【发布时间】:2016-10-11 22:57:59
【问题描述】:
我是 python 新手,我正在尝试理解以下行:
"".join(char for char in input if not unicodedata.category(char).startswith('P'))
来源:https://stackoverflow.com/a/11066443/3818487
此代码从输入中删除所有 unicode 标点符号。我不明白为什么它有效。据我所知,它只是迭代输入中的所有字符而忽略标点符号。 char 在 for 循环中声明之前如何访问它?我来自 java 背景,所以这让我很困惑。
【问题讨论】:
-
您可以阅读 python 中的“列表理解”。这就是这里正在做的事情。
-
“删除所有 unicode 标点符号”与“忽略标点符号字符迭代输入中的所有字符”有何不同?这些对我来说似乎是相同的最终结果。
-
您为什么将链接答案中的标识符
word更改为此处的input?input()是一个内置函数,不应该这样被屏蔽。