![](/img/trans.png)
[英]I have a code or stop the loop, I do not know how I can do for what stops
[英]Can I know what does this specific line of code means and how do i put it in a for loop in Python
我想知道这条特定的线路是什么意思? 元音 = [i for i in string if i in m]
*主要代码是:*
def count_vowel(string):
m = "AaEeIiOoUu"
vowels = [i for i in string if i in m]
if len(vowels) == 0:
print("No vowels in the name")
else:
print(vowels)
print("count:", len(vowels))
string = (input("enter anything to find amount of vowels in it :"))
count_vowel(string)
你能帮我么?
这称为列表理解。 它构建一个新列表,其中每个项目都采用存储在变量string
中的字符串中的每个字符,但只有在字符串m
也找到该字符时才会生成值。
列表推导式的一般结构是:
resultingList = [operateOnIteratorsToProduceResult(i1, i2) for i1, i2 in iterable if condition] # lists are iterables
这可以看作是一个条件映射,当且仅当条件评估为True
(否则不产生任何值,我们继续迭代)时,我们将迭代器映射到相应的结果。
一种特殊情况(您的示例中的情况)是您只需生成迭代器。 在这种情况下,您只需根据条件过滤可迭代对象:
resultingList = [i for i in iterable if condition]
还有一个完整的映射,如:
resultingList = [operateOnIteratorsToProduceResult(i1, i2) for i1, i2 in iterable if condition else alternativeResult]
如果条件计算结果为True
, operateOnIteratorsToProduceResult(i1, i2)
作为结果列表中的元素生成,否则生成alternativeResult
。
理解列表理解的最佳方法是将各个部分分开。
它相当于:
vowels = []
for i in string:
if i in m:
vowels.append(i)
它是一个列表推导式,它遍历字符串并过滤掉m
字符串中的所有值,然后转换回字符串。
从文档:
列表推导式由包含表达式的括号组成,后跟一个
for
子句,然后是零个或多个for
或if
子句。 结果将是一个新列表,该列表是通过在其后面的for
和if
子句的上下文中对表达式进行计算而产生的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.