从列表中添加索引无法正常工作

时间:2016-03-28 19:29:36

标签: python list append repeat

我试图获取列表中的空白/空格索引('')并将它们附加到新列表中。但是,当我这样做时,它只会一遍又一遍地附加第一个索引。

for line in line_list:
        if line == '':
            tlist.append(line_list.index(line))

我知道这个修复必须非常简单,但整个下午都令我感到沮丧。

打印tlist给了我[3,3,3,3,3,3,3,3,3,3,3 .......]

2 个答案:

答案 0 :(得分:1)

index()函数返回值的第一个出现的索引,因此不起作用。试试这个,使用列表理解更有意义,enumerate()会告诉你每个元素的索引:

tlist = [idx for idx, line in enumerate(line_list) if line == '']

答案 1 :(得分:0)

Python中的index()函数仅返回指定元素的第一次出现。因此,您只会将第一次出现的空白元素的索引附加到tlist。相反,使用enumerate函数,它允许您循环使用变量中的索引号。

for index, line in enumerate(line_list):
    if line == '':
        tlist.append(index)

或者,您可以使用while循环,我个人推荐这种循环,而不是enumerate循环使用for each。在这里

index = 0
while index < len(line_list):
    line = line_list[index]
    if line == '':
        tlist.append(index)
    index += 1

无论您选择哪种方法取决于您,它们都能很好地运作。