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

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

在Python中填充坐標(biāo)列表

在Python中填充坐標(biāo)列表

富國滬深 2023-06-27 16:24:25
我有一個排序的坐標(biāo)列表,例如coords = [[19, 52], [20, 52], [24, 52], [25, 52], [20, 53], [22, 53], [20, 54], [21, 54]]我想填寫“之間”的坐標(biāo),這樣結(jié)果列表是:result = [[19, 52], [20, 52], [21, 52], [22, 52], [23, 52], [24, 52], [25, 52], [20, 53], [21, 53], [22, 53], [20, 54], [21, 54]]我怎樣才能做到這一點?我們可以假設(shè)坐標(biāo)中的“間隙”始終是連續(xù)的或零,就像坐標(biāo)中最后兩個“元組”的情況一樣。我們在這里也只處理整數(shù)。我已經(jīng)成功編寫了一個函數(shù),可以對 1 個 y 坐標(biāo)執(zhí)行此操作:def fillElements(sequence):    k=0    while (sequence[k][0]+1) == (sequence[(k+1) % len(sequence)][0]):        k+=1    if k == len(sequence):        return sequence    else:        dummy = list(range((sequence[k][0]+1), sequence[k+1][0]))        for l in range(len(dummy)):            sequence.append([dummy[l], sequence[0][1]])        return sequence該函數(shù)首先通過比較當(dāng)前元素的 x 值與下一個元素的 x 值來找到坐標(biāo)缺失的“中斷”;如果它們相距超過 1,則存在中斷。我還已經(jīng)處理了一些邊緣情況,其中 (i+1) 超出了列表的長度;相反,它會返回并與第一個條目進(jìn)行比較。在這種情況下,當(dāng) while 循環(huán)結(jié)束時,運行索引 k 應(yīng)該恰好是序列的長度,并且序列不變地返回。如果運行索引小于序列的長度,則表明存在中斷。在這種情況下,我使用 range() 創(chuàng)建一個虛擬列表,其中包含所有缺失的 x 值,邊界是循環(huán)被破壞的第 k 個“元組”,+1 因為我不想相同的 x 值兩次,以及下一個元素。然而,雖然這個函數(shù)可以工作,但代碼有點丑陋,而且就像我說的,它只適用于一個 y 坐標(biāo)。解決后者是最重要的部分,但如果有人有建議改進(jìn)此代碼或首先使用其他方法,請告訴我。結(jié)果列表中坐標(biāo)的順序并不重要。e:如果是“唯一的 y 坐標(biāo)”,例如“元組”[20, 51],則不應(yīng)更改任何內(nèi)容,因為“中間”沒有元素。
查看完整描述

1 回答

?
神不在的星期二

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

如果我理解正確的話,您想要填充x坐標(biāo)中的空白,并在每次y坐標(biāo)更改時重置。


下面是一個 Python 3 解決方案,可以做到這一點:


def fill_gaps(coordinates):

    last_x, last_y = None, None


    for x, y in coordinates:

        if y == last_y:

            # Fill in any potential gaps between the last value and us

            yield from ([new_x, y] for new_x in range(last_x + 1, x))


        last_x, last_y = x, y

        yield [x, y]

這使用生成器使代碼更容易一些,因此如果您想要一個列表,則需要將調(diào)用包裝起來list()以實現(xiàn)這一點:


result = list(fill_gaps(coords))

該解決方案需要按照您的說明對坐標(biāo)進(jìn)行排序。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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