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

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