下面的行代码是什么意思?

时间:2017-01-18 19:51:12

标签: python

对于学校的任务,我们必须开发一个程序,该程序将从用户处获取一段文本,将其转换为列表,然后查找用户在文本中搜索的单词的所有位置。

我已经找到了多种方法可以做到这一点,但是他们在某个地方都有轻微的垮台。除了一条,但有一条线我不明白,因此我想知道是否有人可以向我解释。

代码行是position = [I for I, x in enumerate(text2) if x == (word)]

1 个答案:

答案 0 :(得分:0)

enumerate函数创建与序列中元素位置对应的索引。

因此,如果您有列表l = ['this', 'is', 'a', 'text'],则枚举将生成[(0, 'this'), (1, 'is'), (2, 'a'), (3, 'text')](实际上它会创建一个生成器,但现在这并不重要)。 根据{{​​3}},枚举相当于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

然后将元组解压缩到I, x。如果x等于word,则会将I添加到列表中。