Python 如何返回列表中元素的顺序?

Python 如何返回列表中元素的顺序?,python,Python,我想知道一个元素是否多次出现在列表中,如果是,第二个元素的顺序是什么。第二个很重要,而不是第三个或第四个 list = [1, 3, 4, 2, 0, 1, 6, 7, 0] 我的预期产出是: “1”在列表中出现两次,第二个“1”的顺序为六次 非常粗糙的代码,只是为了传达您可以应用的逻辑来完成它: list = [1, 3, 4, 2, 0, 1, 6, 1, 7, 0] flagged = [] for index, elem in enumerate(list): elem_co

我想知道一个元素是否多次出现在列表中,如果是,第二个元素的顺序是什么。第二个很重要,而不是第三个或第四个

list = [1, 3, 4, 2, 0, 1, 6, 7, 0]
我的预期产出是:

“1”在列表中出现两次,第二个“1”的顺序为六次


非常粗糙的代码,只是为了传达您可以应用的逻辑来完成它:

list = [1, 3, 4, 2, 0, 1, 6, 1, 7, 0]

flagged = []
for index, elem in enumerate(list):
    elem_count = list[index:].count(elem)
    if elem_count > 1 and elem not in flagged:
        flagged.append(elem)
        temp_index = list[index + 1:].index(elem)
        actual_index = index + temp_index + 1
        print(str(elem) + ' is in the list ' + str(elem_count) + ' times and the order of 2nd is ' + str(actual_index))

# OP
# 1 is in the list 3 times and the order of 2nd is 5
# 0 is in the list 2 times and the order of 2nd is 9

你确定是6点而不是5点吗?索引从0开始。 在任何情况下,您都可以使用
索引
查找它:

first_idx = list.index(element)
print(list.index(element, first_idx + 1))

这样,您将找到元素的第一个匹配项,然后返回第二个元素的索引。如果您想要6而不是5,则将其增加1。

在列表上一次完成,同时保存目标编号的索引并在最后检查其数量:

l=[1,3,4,2,0,1,6,7,0]
目标=1
idxs=[]
对于i,枚举中的num(l):
如果num==目标:
idxs.append(一)
如果len(idxs)>1:
打印(f'{target}在列表中{len(idxs)}次,第二个“{target}”的顺序为{idxs[1]+1}')
其他:
打印(f'{target}在列表中0或1次)
也可以通过整洁的列表获得索引:

idxs = [i for i, num in enumerate(l) if num == target]