python打印出现次数第二多的元素的索引值

python中,如何打印alist列表中出现次数第二多的元素的索引值

1. 创建字典统计每个元素出现的次数

2. 使用sorted对字典的value进行降序排序

3. 获取排序后第二多的元素

4. index方法查找元素在列表中的索引


alist = [1,3,5,6,7,8,9,4,5,6,7,3,4,2,3,4,5,6,7,8,9,10,2,3,3,6]

# 统计列表中每个元素出现的次数
def get_elem_count(lst):
  elems = {}
  for key in lst:
    if key in elems:
      elems[key] = elems[key] + 1
    else:
      elems[key] = 1
  return elems

# 对字典的value进行排序,从大到小
def elem_sorted(dct):
  return sorted(dct.items(), key=lambda x: x[1], reverse=True)

if __name__ == "__main__":
  elems = get_elem_count(alist)
  print(elems)
  elems_sort = elem_sorted(elems)
  print(elems_sort)
  # 获取第二多的元素
  elem = elems_sort[1][0]
  print(elem)
  # 第二多的元素的索引值
  idx = alist.index(elem)
  print(idx)

img

新建一个字典,列表元素作为key,出现次数作为value,排序,得出第二个元素的key,查找key在列表的下标