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

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

如何壓縮兩個序列(一個由N個元素移位)?

如何壓縮兩個序列(一個由N個元素移位)?

函數(shù)式編程 2022-08-16 16:22:40
我有兩個列表,我想遍歷元素對,等等。沒有這種轉(zhuǎn)變,我只能用它來有效地做到這一點。AB(A[0], B[2])(A[1], B[3])zip(A, B)在這個例子中,位移是2,但可能會發(fā)生我需要N的移位的情況。如何有效地做到這一點(而不是索引成兩個列表)?
查看完整描述

2 回答

?
絕地?zé)o雙

TA貢獻1946條經(jīng)驗 獲得超4個贊

我認(rèn)為一個簡潔的方法是這樣做

zipped = zip(list1, list2[n:])

where 是表示偏移量的整數(shù)。n


查看完整回答
反對 回復(fù) 2022-08-16
?
慕尼黑的夜晚無繁華

TA貢獻1864條經(jīng)驗 獲得超6個贊

最終,我得到了以下通用函數(shù):


def zip_shift(s1, s2, shift, placeholder):

    i1 = iter(s1)

    i2 = iter(s2)


    while shift > 0:

        yield placeholder, next(i2)  # leave only next(i2) if no placeholder pairs are needed

        shift -= 1


    yield from zip(i1, i2)  # or return zip

上述函數(shù)的工作方式類似于生成器,它首先填充值時間,而不是從第二個序列中獲取值。之后,它就像.這是一個相對較新的結(jié)構(gòu)(自Python 3.3以來)。上述收益率和回報率之間存在細微差異,但在這種情況下可以忽略不計。placeholdershifts2zipyield from


當(dāng)然,如果值幾乎為1(帶有占位符的對除外),則可以通過以下方式實現(xiàn)相同的值:shift


zip(s1, next(s2))

與序列一樣,不必具有相同的長度。只要較短的序列未耗盡,生成器就會工作。zip


查看完整回答
反對 回復(fù) 2022-08-16
  • 2 回答
  • 0 關(guān)注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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