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

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

來自兩個列表的子集值

來自兩個列表的子集值

斯蒂芬大帝 2022-06-02 10:24:04
我有兩個清單:a = ['E', 'E', 'E', 'E', 'E', 'E', 'E', 'C', 'C', 'C']b = ['C', 'C', 'E', 'E', 'E', 'E', 'E', 'C', 'E', 'C']我想對這些進(jìn)行子集化以獲得:a = ['E', 'E', 'E', 'E', 'E', 'E', 'E']b = ['C', 'C', 'E', 'E', 'E', 'E', 'E']這樣我保留第一個列表中的“E”,但使用第二個列表 b 中的索引獲取相應(yīng)的位置值。我嘗試使用:a = [x for x in a if x == 'E']b = [x for x in b if x == 'E']但這并不能保持順序/位置,而是從列表 b 中僅提取 E。
查看完整描述

3 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個贊

使用 zip 函數(shù)壓縮然后像這樣解壓縮


a = ['E', 'E', 'E', 'E', 'E', 'E', 'E', 'C', 'C', 'C']

b = ['C', 'C', 'E', 'E', 'E', 'E', 'E', 'C', 'E', 'C']


a, b = zip(*[(ai, bi) for ai, bi in zip(a,b) if ai=="E"])

print(a)

print(b)

輸出


('E', 'E', 'E', 'E', 'E', 'E', 'E')

('C', 'C', 'E', 'E', 'E', 'E', 'E')


查看完整回答
反對 回復(fù) 2022-06-02
?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個贊

簡單的itertools.takewhile功能:


from itertools import takewhile


a = ['E', 'E', 'E', 'E', 'E', 'E', 'E', 'C', 'C', 'C']

b = ['C', 'C', 'E', 'E', 'E', 'E', 'E', 'C', 'E', 'C']


a_slice = list(takewhile(lambda x: x == 'E', a))

b_slice = b[:len(a_slice)]


print(a_slice)   # ['E', 'E', 'E', 'E', 'E', 'E', 'E']

print(b_slice)   # ['C', 'C', 'E', 'E', 'E', 'E', 'E']


查看完整回答
反對 回復(fù) 2022-06-02
?
慕俠2389804

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

嘗試這個


a = [x for x in a if x == 'E']


indexes = [i for i, x in enumerate(a) if x == "E"]


b = [b[i] for i in indexes] 


查看完整回答
反對 回復(fù) 2022-06-02
  • 3 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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