4

好的,这里我还有一个问题,我需要\n在我的列表中找到一个人的位置。

list = ['abc', '\n', 'def', 'ghi', '\n', 'jkl']

所以,我需要从此列表中获取所有 '\n' 条目的位置。

我用了

a=list.index('\n')

但只有一个值为“1”。如何获得两个职位?

例如,我将得到一个位置为 '\n' 的列表

位置 = ['1', '4']

'1' 表示 \n 在列表中的第一个位置,'4' 表示第二个在列表中的第四位。

4

3 回答 3

11

您需要遍历元素。这可以通过使用列表推导和enumerate索引轻松完成:

indexes = [i for i, val in enumerate(list) if val == '\n']

演示:

>>> lst = ['abc', '\n', 'def', 'ghi', '\n', 'jkl']
>>> [i for i, val in enumerate(lst) if val == '\n']
[1, 4]
于 2012-08-13T09:38:29.077 回答
4
[i for i, x in enumerate(l) if x == "\n"]
# => [1, 4]

并且不要调用列表list,因为这是一个内置函数。

于 2012-08-13T09:40:26.313 回答
0

要在列表中查找多次出现的项目的索引,下面的代码应该可以工作

print [i for i in range(len(list)) if list[i] == '\n']

在这里,我使用list 了你的问题,但不要使用关键字作为变量。

于 2012-08-13T09:47:10.433 回答