在“” .join(e.0在element.split()中的e [0]的幕后发生了什么?

当我的Java经验有限时,我是一个尝试学习Python的初学者,所以请在这里忍受。

我可以区分代码各部分的目的。我知道我们实际上是将短语中每个单词的第一个字符连接到一个字符串中,因此实际上是首字母缩写词。我知道我们需要将该短语解析为单词列表,并且对于每个单词,我们都可以弹出第一个字符,并且需要循环才能做到这一点。好的,有道理。

但是到底是什么?我们将for循环传递给join函数吗?当语法上不属于e循环的一部分时,我可以看到e [0]在这里发挥什么作用?

我认为语法可能使我陷入循环(对双关语)。

heiseseo 回答:在“” .join(e.0在element.split()中的e [0]的幕后发生了什么?

那是generator expression。它类似于list comprehension,但它使用()代替[],并且求值为生成器而不是列表。它还可以利用现有的(),例如用来调用join的那些。

"".join(e[0] for e in phrase.split())

基本上等同于:

"".join([e[0] for e in phrase.split()])  # A list comprehension

或者,使用典型的for循环将其完全阐明:

chars = []

for e in phrase.split():
    chars.append(e[0])

"".join(chars)
本文链接:https://www.f2er.com/3155774.html

大家都在问