第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

根據(jù)不同列表的匹配元素旋轉(zhuǎn)列表

根據(jù)不同列表的匹配元素旋轉(zhuǎn)列表

慕容3067478 2023-06-27 17:25:24
假設(shè)我有兩個(gè)列表:List1[26, 45, 15]列表2[13, 15, 20]假設(shè)兩個(gè)列表之間總是有一個(gè)元素相同,我將如何將 list2 重新排序?yàn)椋篬20, 13, 15]其中 15 成為 list2 的第三個(gè)元素,因?yàn)?15 是 list1 的第三個(gè)元素(同時(shí)保持 13、15、然后 20 的順序)?我嘗試過(guò)這樣的事情:# Reorder list2 to correspond with list1key = 0newOrder = []for i in range(3):   for j in range(3):            if list2[i] == list1[j]:  # if elements                 key = i - jfor k in range(3):   index = k + key   if index == 3:            index = 0   if index == -1:            index = 2   newOrder.append(list2[index])但它的成功率并不是100%。
查看完整描述

2 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

假設(shè)您想要旋轉(zhuǎn)list2以使“共享”元素位于與 中相同的位置list1。


首先,要獲得匹配的索引,您不必比較所有元素。相反,您可以使用字典來(lái)存儲(chǔ)哪個(gè)元素位于哪個(gè)位置,然后在一次傳遞中獲取匹配位置list2(如果列表始終只有 3 個(gè)元素,這并不重要,但對(duì)于較長(zhǎng)的列表,它會(huì)降低復(fù)雜性O(shè)(n2) 至 O(n))


list1 = [26, 45, 15]

list2 = [13, 15, 20]

pos2 = {x: i for i, x in enumerate(list2)}

p1, p2 = next((i, pos2[x]) for i, x in enumerate(list1) if x in pos2)

然后,當(dāng)索引大于列表的長(zhǎng)度時(shí),您可以使用列表理解來(lái)list2使用模數(shù)“環(huán)繞”來(lái)獲取“旋轉(zhuǎn)”元素。%


n = len(list2)

res = [list2[(i+p2-p1) % n] for i in range(n)]

print(res) # [20, 13, 15]


查看完整回答
反對(duì) 回復(fù) 2023-06-27
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

此代碼獲取 list1 中也存在于 list2 中的數(shù)字的值和索引。


list1 = [26, 45, 15]

list2 = [13, 15, 20]


index, number = next((idx,number) for idx, number in enumerate(list1) if number in list2)

然后它從 list2 中刪除該數(shù)字并將其再次插入到所需的索引處:


list2.remove(number)

list2.insert(index,number)


print(list2)

輸出將是


[13, 20, 15]


查看完整回答
反對(duì) 回復(fù) 2023-06-27
  • 2 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)