亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字典內列表中的值中查找索引

從字典內列表中的值中查找索引

慕森王 2022-10-06 19:09:22
有誰知道如何從字典 1 上的字典 2 中獲取值的索引 .. 像這樣:Dictionary_1= {A: [Tom, Jane, Joe]; B: [Joana, Clare, Tom]; C: [Clare, Jane, Joe]}Dictionary_2 = {A: Tom; B: Clare; C: Jane}RESULT = {A: 1; B: 2; C: 2}編輯:對不起,伙計們..首先我很困惑,忘記了我需要它以“0”而不是“1”開頭。我遇到了問題,但這是因為我在字典 1 中的列表是 unicode 格式而不是列表。另外..在我在這里使用的示例中,我后來注意到兩個字典中都存在鍵,但是在我編寫的代碼中它不是同一件事。我沒有在這里發布原件,因為它更大,所以我盡量恢復。對此也很抱歉。所以我讓它使用這段代碼:            RESULT = {}            for x, y in Dictionary_1.items():                for a, b in Dictionary_2 .items():                    if x == a:                        z = Dictionary_1[x]                        r = eval(z)                        if '{0}'.format(b) in r:                            RESULT [a] = r.index('{0}'.format(b))我知道它看起來很亂,但我還在學習。我真的很感謝你們的幫助!
查看完整描述

4 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

假設您想要基于 0 的索引,您可以使用list.index()dict comprehension


d1 = {'A': ['Tom', 'Jane', 'Joe'], 'B': ['Joana', 'Clare', 'Tom'], 'C': ['Clare', 'Jane', 'Joe']}


d2 = {'A': 'Tom', 'B': 'Clare', 'C': 'Jane'}


result = {k: d1[k].index(v) for k, v in d2.items()}


print(result)

# {'A': 0, 'B': 1, 'C': 1}

如果您希望索引從 開始1,那么您可以這樣做d1[k].index(v) + 1。


查看完整回答
反對 回復 2022-10-06
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

您可以嘗試使用dict comprehension。


dict1={'A':['Tom','Jane','Joe'],'B':['Joana','Clare','Tom'],'C':['Clare','Jane','Joe']}

dict2={'A':'Tom','B':'Clare','C':'Jane'}

result={k:dict1[k].index(v)+1 for k,v in dict2.values()}

# {'A': 1, 'B': 2, 'C': 2}

#Or

# {k:dict1.get(k).index(v)+1 for k,v in dict2.items()}


查看完整回答
反對 回復 2022-10-06
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

為您提供易于理解的解決方案


d1 = {'A': ['Tom', 'Jane', 'Joe'], 'B': ['Joana', 'Clare', 'Tom'], 'C': ['Clare', 'Jane', 'Joe']}

d2 = {'A': 'Tom', 'B': 'Clare', 'C': 'Jane'}


output = {}

for k,v in d2.items():

    output[k] = d1[k].index(v)+1


print(output)


查看完整回答
反對 回復 2022-10-06
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

這當然不是最好的方法,但這是我很快做的:


dict1 = {0: ['Tom', 'Jane', 'Joe'], 1: ['Joana', 'Clare', 'Tom'], 2: ['Clare', 'Jane', 'Joe']}

dict2 ={0: 'Tom', 1: 'Clare', 2: 'Jane'}

result = {}


val_list = list(dict1.values())


for i in range(0,len(dict1)):

    result.update({i : val_list[i].index(dict2[i])})


print(result)


查看完整回答
反對 回復 2022-10-06
  • 4 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號