Python–元素索引等级

原文:https://www . geesforgeks . org/python-index-元素等级/

给定一个元素列表,我们的任务是获取每个元素的索引等级。

Index Rank of Number = (Sum of occurrence indices of number) / number

输入: test_list = [3,4,6,5,3,4,9,1,2,1,8,3,2,3,9]

输出: [(1,16.0),(2,10.0),(3,9.333333333334),(4,1.5),(5,0.6),(6,0.3333333333333333),(8,1.25),(9,2.22222222222222222223)]

说明: 1 出现在索引 7 和 9 的列表中。9 + 7 = 16 / 1 = 16.

输入: test_list = [3,4,6,5,3,4,9,1,2,1,8,3,2,3,9]

输出: [(1,16.0),(2,10.0),(3,9.333333333334),(4,1.5),(5,0.6),(6,0.3333333333333333),(8,1.25),(9,2.22222222222222222223)]

说明: 5 出现在指数 3。3 / 5 = 0.6.

例:使用 循环 + 过滤() + 列表理解 + 集合()+求和()T30】+循环

在这种情况下,使用过滤器()和列表理解来提取元素的索引。set()用于获取列表中存在的唯一数字。sum()用于计算所有指数的总和。

Python 3

# Python3 code to demonstrate working of
# Index Ranks of Elements
# Using loop + filter() + list comprehension. + set() + sum() + loop

# initializing list
test_list = [3, 4, 6, 5, 3, 4, 9,
             1, 2, 1, 8, 3, 2, 3, 9]

# printing original list
print("The original list is : " + str(test_list))

res = []
all_ele = set(test_list)
for ele in all_ele:

    # getting indices of each element 
    indices = list(filter(lambda sub: test_list[sub] == ele, range(len(test_list))))

    # index rank
    idx_rank = sum(indices) / ele
    res.append((ele, idx_rank))

# printing result
print("Index rank of each element : " + str(res))

输出:

原来的名单是:[3,4,6,5,3,4,9,1,2,1,8,3,2,3,9]

各元素的指数排名:[(1,16.0),(2,10.0),(3,9.3333333333334),(4,1.5),(5,0.6),(6,0.3333333333333333333),(8,1.25),(9,2.222222222222222222223)]