python List列表查找相同元素下标位置

python的list怎么查找它的下标呢?并能实现记录下标位置。

如下:list_position_name为原list,可以发现‘网络工程师’有多个重复值,那么我们想知道它的下标,最后返回字典形式。

list_position_name= ['网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '会计', '房产经纪', '美发师', '质量管理员', '房产销售', '跟单员', '客户经理', '销售经理', '后期制作', '经纪人', '导购', '房产经纪', '财务审计', '测试开发工程师', '软件测试工程师', '初中级功能测试工程师', 'BMS软件测试工程师', '软件测试工程师 SW Tester', '软件测试员', '测试部经理', '软件测试经理/主管', '中级测试工程师', '884-软件测试工程师', '测试工程师', '软硬件测试工程师', '测试工程师', '软件测试工程师', '高级测试经理', '软件测试工程师', '软件测试经理/主管', '软件测试工程师', '软件测试', '软件测试(常州)']
# 查找相同职位名称位置
list_price_positoin_address = []
for i in list_position_name:
    address_index = [x for x in range(len(list_position_name)) if list_position_name[x] == i]
    list_price_positoin_address.append([i, address_index])
dict_address = dict(list_price_positoin_address)
print(dict_address)

最终查找结果。

dict_address = {'网络工程师': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], '会计': [10], '房产经纪': [11, 21], '美发师': [12], '质量管理员': [13], '房产销售': [14], '跟单员': [15], '客户经理': [16], '销售经理': [17], '后期制作': [18], '经纪人': [19], '导购': [20], '财务审计': [22], '测试开发工程师': [23], '软件测试工程师': [24, 36, 38, 40], '初中级功能测试工程师': [25], 'BMS软件测试工程师': [26], '软件测试工程师 SW Tester': [27], '软件测试员': [28], '测试部经理': [29], '软件测试经理/主管': [30, 39], '中级测试工程师': [31], '884-软件测试工程师': [32], '测试工程师': [33, 35], '软硬件测试工程师': [34], '高级测试经理': [37], '软件测试': [41], '软件测试(常州)': [42]}

现在有两个list,一个是职位信息,一个是薪资水平,因为职位信息有所重复,所以我们想计算平均薪资。第一步通过查找list重复元素,记录下标,然后在薪资list列表中按下标去计算平均薪资,得到最后结果。

list_position_name= ['网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '网络工程师', '会计', '房产经纪', '美发师', '质量管理员', '房产销售', '跟单员', '客户经理', '销售经理', '后期制作', '经纪人', '导购', '房产经纪', '财务审计', '测试开发工程师', '软件测试工程师', '初中级功能测试工程师', 'BMS软件测试工程师', '软件测试工程师 SW Tester', '软件测试员', '测试部经理', '软件测试经理/主管', '中级测试工程师', '884-软件测试工程师', '测试工程师', '软硬件测试工程师', '测试工程师', '软件测试工程师', '高级测试经理', '软件测试工程师', '软件测试经理/主管', '软件测试工程师', '软件测试', '软件测试(常州)']
list_position_price = [22500.0, 18000.0, 21500.0, 6500.0, 9000.0, 22500.0, 18000.0, 21500.0, 6500.0, 9000.0, 1000.0, 6500.0, 1000.0, 4000.0, 10000.0, 6500.0, 6500.0, 10000.0, 1500.0, 1000.0, 4000.0, 6500.0, 2500.0, 110000.0, 55000.0, 85000.0, 1000.0, 275000.0, 1000.0, 1000.0, 165000.0, 80000.0, 180000.0, 60000.0, 60000.0, 60000.0, 60000.0, 90000.0, 80000.0, 150000.0, 50000.0, 55000.0, 80000.0]

# 查找相同职位名称位置
list_price_positoin_address = []
for i in list_position_name:
    address_index = [x for x in range(len(list_position_name)) if list_position_name[x] == i]
    list_price_positoin_address.append([i, address_index])
dict_address = dict(list_price_positoin_address)
# 返回职位薪资平均值
list_price_position = []
list_price_avg = []
for i, v in dict_address.items():
    price = 0
    for j in v:
        price += int(list_position_price[j])
    list_price_position.append(i)
    list_price_avg.append(round(price / int(len(v)), 2))
return list_price_position, list_price_avg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章