2024-06-27 17:23:43 发布
网友
在以下代码中:
chars = set('AEIOU') ... if any((cc in chars) for cc in name[ii]): print 'Found'
什么是“(cc in chars)”部分?我知道它应用于for循环生成的每个cc。但是“(cc in chars)”构造本身是生成器表达式吗?你知道吗
谢谢。你知道吗
否,(cc in chars)部分是一个布尔表达式;^{} is a sequence operator用于测试cc是否是序列chars的成员。括号实际上是多余的,可以省略。你知道吗
(cc in chars)
cc
chars
不,(cc in chars)只是一个布尔值,如果cc在chars中则返回True,否则返回False。你知道吗
实际上,代码实际上是可以编写的
chars = set('AEIOU') ... if [cc for cc in name[ii] if cc in chars]: print 'Found'
在这种情况下,如果列表中有任何元素(使其通过if子句),那是因为某些cc在chars中。事实上,我会发现这更具可读性和直截了当。 干杯。你知道吗
编辑:
为了澄清我的答案,[cc for cc in name[ii] if cc in chars]生成了name[ii]中“chars”中的所有字符(在这种情况下是元音)的列表。如果此列表上有任何元素,它将通过If测试。你知道吗
[cc for cc in name[ii] if cc in chars]
[cc for cc in name[ii] if cc in chars]表示“对于name[ii]中的每个元素/字符,只有在chars中才添加它。查看this答案以获得澄清。你知道吗
(cc in chars)只是检查字符串cc是否包含在chars中,并返回布尔值false或true。你知道吗
false
true
根据Python Language Reference,括号之间的东西不是生成器表达式,除非它至少有一个for i in iterable子句。你知道吗
for i in iterable
否,} is a sequence operator 用于测试
(cc in chars)
部分是一个布尔表达式;^{cc
是否是序列chars
的成员。括号实际上是多余的,可以省略。你知道吗不,
(cc in chars)
只是一个布尔值,如果cc在chars中则返回True,否则返回False。你知道吗实际上,代码实际上是可以编写的
在这种情况下,如果列表中有任何元素(使其通过if子句),那是因为某些cc在chars中。事实上,我会发现这更具可读性和直截了当。 干杯。你知道吗
编辑:
为了澄清我的答案,
[cc for cc in name[ii] if cc in chars]
生成了name[ii]中“chars”中的所有字符(在这种情况下是元音)的列表。如果此列表上有任何元素,它将通过If测试。你知道吗[cc for cc in name[ii] if cc in chars]
表示“对于name[ii]中的每个元素/字符,只有在chars中才添加它。查看this答案以获得澄清。你知道吗(cc in chars)
只是检查字符串cc
是否包含在chars
中,并返回布尔值false
或true
。你知道吗根据Python Language Reference,括号之间的东西不是生成器表达式,除非它至少有一个
for i in iterable
子句。你知道吗相关问题 更多 >
编程相关推荐