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

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

如何制作一個對兩個或多個相同形狀的嵌套列表進(jìn)行操作的 Python 函數(shù)?

如何制作一個對兩個或多個相同形狀的嵌套列表進(jìn)行操作的 Python 函數(shù)?

慕桂英546537 2021-12-21 10:52:31
我想將任意函數(shù)應(yīng)用于兩個或多個相同形狀的嵌套列表。例如,如果我的功能是:def add(a, b):    if "NULL" not in [a, b]:        return a + b    else:        return "NULL"我的輸入是:input1 = [[1, 2, "NULL"], [3, 4], [5, 6, 7, 8]]input2 = [[9, 8, "NULL"], [7, 6], [5, 4, 3, 2]]然后我希望輸出是output = [[10, 10, "NULL"], [10, 10], [10, 10, 10, 10]]輸入總是嵌套一層深,但理想情況下輸出應(yīng)該是任何東西(例如,如果函數(shù)是“concatenate(a, b)”函數(shù),它可以嵌套更深)
查看完整描述

2 回答

?
子衿沉夜

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

怎么樣:


def apply_f(a, b, f):

    if isinstance(a, list):

        return [apply_f(item_a, item_b, f) for item_a, item_b in zip(a, b)]

    else:

        return f(a, b)


result = apply_f(input1, input2, add)


查看完整回答
反對 回復(fù) 2021-12-21
?
蝴蝶刀刀

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

假設(shè)列表的長度總是正確的(你可以檢查一下),讓你的函數(shù)遞歸:


def add(a, b):


    if isinstance(a, list) and isinstance(b, list):

        for a_sub, b_sub in zip(a, b):

            return [add(a_sub, b_sub) for a_sub, b_sub in zip(a, b)]


    elif "NULL" not in [a, b]:

        return a + b


    elif "NULL" in [a, b]:

        return "NULL"


    else:

        raise ValueError("Wrong input shapes")


input1 = [[1, 2, "NULL"], [3, 4], [5, 6, 7, 8]]

input2 = [[9, 8, "NULL"], [7, 6], [5, 4, 3, 2]]


add(input1, input2)

輸出:


[[10, 10, 'NULL'], [10, 10], [10, 10, 10, 10]]


查看完整回答
反對 回復(fù) 2021-12-21
  • 2 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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