【问题标题】:What does the line code below mean? [duplicate]下面的行代码是什么意思? [复制]
【发布时间】:2017-06-03 08:28:18
【问题描述】:

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

我找到了多种几乎可以做到这一点的方法,但它们都在沿线的某个地方略有下降。除了一个,但是这有一行我不明白,因此我想知道是否有人可以向我解释一下。

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

【问题讨论】:

标签: python


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 2021-10-30
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多