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

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

通過通用標識符對Python中的兩個列表進行交叉標識(重疊)

通過通用標識符對Python中的兩個列表進行交叉標識(重疊)

尚方寶劍之說 2021-03-29 12:27:11
我有兩個列表對,每個對由一個標識符列表和一個值列表組成,其中a和b的長度不同。例如:a_id = [1, 2, 4, 5, 9, 12, 13]a_val = [13., 32., 5., 9., 32., 4., 8.]b_id = [1, 3, 4, 6, 9]b_val = [12., 27., 1., 3., 19.]現(xiàn)在,我需要知道與同一個id對應的值,而我只需要那些在a和b中具有值的值。對于此示例,我想獲取常見ID和相應值的列表:common_id = [1, 4, 9]common_a_val = [13., 5., 32.]common_b_val = [12., 1., 19.]最好/最快的方法是什么?
查看完整描述

3 回答

?
阿波羅的戰(zhàn)車

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

>>> common_id = [i for i in a_id if i in b_id]

>>> common_id

[1, 4, 9]

>>> common_a_val = [a_val[a_id.index(i)] for i in common_id]

>>> common_a_val

[13.0, 5.0, 32.0]

>>> common_b_val = [b_val[b_id.index(i)] for i in common_id]

>>> common_b_val

[12.0, 1.0, 19.0]


查看完整回答
反對 回復 2021-04-06
?
哈士奇WWW

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

>>> a_d = dict(zip(a_id,a_val))

>>> b_d = dict(zip(b_id,b_val))

>>> common_ids = a_d.viewkeys() & b_d.viewkeys()

set([1, 4, 9])

>>> common_a_val = [a_d[key] for key in common_ids]

[13.0, 5.0, 32.0]

>>> common_b_val = [b_d[key] for key in common_ids]

[12.0, 1.0, 19.0]


查看完整回答
反對 回復 2021-04-06
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

def common_elements(list1, list2):

   return [element for element in list1 if element in list2]

a_id = [1, 2, 4, 5, 9, 12, 13]

a_val = [13., 32., 5., 9., 32., 4., 8.]

b_id = [1, 3, 4, 6, 9]

b_val = [12., 27., 1., 3., 19.]

common_a_val=[];common_b_val=[]

common_id=common_elements(a_id,b_id)

for i in common_id:

    common_a_val.append(a_val[a_id.index(i)])

    common_b_val.append(b_val[b_id.index(i)])

print common_id,common_a_val,common_b_val

它的輸出是:


 [1, 4, 9] [13.0, 5.0, 32.0] [12.0, 1.0, 19.0]


查看完整回答
反對 回復 2021-04-06
  • 3 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號