[英]How to find the index for all the elements in a list with a particular value in python
我有兩張清單,一張帶有產品的 ID 代碼,另一張帶有購買價格。
我計划將它們組合在一個列表列表中,第一個元素是產品 ID,以下元素是價格,如下所示:
product_id = [40, 56, 15, 17, 12, 39, 52, 41, 14, 19, 58, 42]
price_id = [1, 9, 25, 25, 25, 1, 9, 1, 25, 25, 9, 1]
list = [[1, 40, 39, 41, 42], [9, 56, 58, 52], [25, 12, 14, 19, 17, 15]]
我寧願在沒有 pandas 的情況下執行此操作,但我想知道您如何執行此操作,或者使用 pandas 創建一個數據框並按產品 ID 排序是否會更好,因為這將使進一步編碼更容易,其余部分已編碼假設這種布局。
到目前為止,我計划使用 for 循環將產品列表和價格列表上的索引連接在一起,但我找不到所有索引。 我在想這樣的事情:
index_prod1 = [0, 5, 7, 11]
prod1 = [1]
for i in range(len(index_prod1)):
prod1.append(price_id[i])
list = [prod1, prod9, prod25]
但是,我想知道如何獲得index_prod1
,我是否必須做一個 for 循環,並且每個值只需 append ?
那,我怎樣才能使它更通用,以便如果有更多產品添加到兩個列表中,model 仍然可以工作,因為這需要改變產品數量。
product_id = [40, 56, 15, 17, 12, 39, 52, 41, 14, 19, 58, 42]
price_id = [1, 9, 25, 25, 25, 1, 9, 1, 25, 25, 9, 1]
out = {}
for a, b in zip(product_id, price_id):
out.setdefault(b, []).append(a)
out = [[k, *v] for k, v in out.items()]
print(out)
印刷:
[[1, 40, 39, 41, 42], [9, 56, 52, 58], [25, 15, 17, 12, 14, 19]]
如果我理解你的問題,你可以使用 enumerate 所以你會這樣做
for idx, i in enumerate(index_prod1):
我將是價值,idx 將是索引是你的意思
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.