成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何通過(guò)列表推導(dǎo)式合并兩個(gè)list?

jsyzchen / 1019人閱讀

摘要:如何合并兩個(gè)長(zhǎng)度相等的示例輸入輸出方案遍歷兩個(gè)數(shù)組傳入的的長(zhǎng)度需要相等上面給出了一個(gè)簡(jiǎn)單的示例,就是通過(guò)一次帶有索引循環(huán)每次循環(huán)中將兩個(gè)中對(duì)應(yīng)的元素插入新的。

如何合并兩個(gè)長(zhǎng)度相等的list?

示例:

輸入:

list1: [1, 2, 3]

list2: ["a", "b", "c"]

輸出:

[1, "a", 2, "b", 3, "c"]

方案1: 遍歷兩個(gè)數(shù)組
def interleave_by_loop(list1, list2):
    if len(list1) != len(list2):
        raise ValueError("傳入的list的長(zhǎng)度需要相等")

    new_list = []
    for index, value in enumerate(list1):
        new_list.append(value)
        new_list.append(list2[index])
    return new_list


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]

if __name__ == "__main__":
    print(interleave_by_loop(list1, list2))
    # [1, "a", 2, "b", 3, "c"]
    

上面給出了一個(gè)簡(jiǎn)單的示例,就是通過(guò)一次帶有索引for循環(huán)
每次循環(huán)中將兩個(gè)list中對(duì)應(yīng)的元素插入新的list。

上面的方法可能是個(gè)比較通用的做法,但是在Python中可以寫(xiě)的簡(jiǎn)潔一點(diǎn)

方案2
def interleave(list1, list2):
    return [val for pair in zip(list1, list2) for val in pair]


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]

if __name__ == "__main__":
    print(interleave(list1, list2))
    # [1, "a", 2, "b", 3, "c"]
    

這里,我們首先觀察下代碼,首先

zip(list1, list2) 把兩個(gè)列表合并成一個(gè)元組列表

然后我們通過(guò)for循環(huán)得到一個(gè)個(gè)元組

最后把元組解析成我們的列表

其實(shí),我們還可以修改下我們的函數(shù),使得我們的函數(shù)更加具有通用性

def interleave(*args):
    return [val for pair in zip(*args) for val in pair]


list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
list3 = ["github", "google.com", "so"]

if __name__ == "__main__":
    print(interleave(list1, list2, list3))
    # [1, "a", "github", 2, "b", "google.com", 3, "c", "so"]
    

這樣我們的函數(shù)就可以接受任意多個(gè)列表了!

https://github.com/fish-bugs/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43831.html

相關(guān)文章

  • python面試常見(jiàn)問(wèn)題

    摘要:和的的區(qū)別和的的區(qū)別返回列表,返回迭代器,節(jié)約內(nèi)存當(dāng)后面沒(méi)有元素可以的時(shí)候,彈出錯(cuò)誤等是可迭代的但不是迭代器,因?yàn)楹瘮?shù)無(wú)法調(diào)用它們。等是可迭代的但不是迭代器,因?yàn)楹瘮?shù)無(wú)法調(diào)用它們。 ...

    Simon_Zhou 評(píng)論0 收藏0
  • 編寫(xiě)高效且優(yōu)雅的 Python 代碼(1)

    摘要:查看原函數(shù)的參數(shù)注釋甚至函數(shù)名的時(shí)候,只能看到裝飾器的相關(guān)信息。也就是說(shuō),它是裝飾器的裝飾器,并且以原函數(shù)為參數(shù),作用是保留原函數(shù)的各種信息,使得我們之后查看被裝飾了的原函數(shù)的信息時(shí),可以保持跟原函數(shù)一模一樣。 貌似只能創(chuàng)建一個(gè)專欄,所以這篇文章只好放到JavaScript從前端到全終端里了? 原文鏈接:Effective Python Python 作為一門(mén)入門(mén)極易并容易上癮的語(yǔ)...

    roadtogeek 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (八) 最用心的推導(dǎo)詳解 (附簡(jiǎn)單實(shí)戰(zhàn)及源碼)

    摘要:什么是推導(dǎo)式大家好,今天為大家?guī)?lái)問(wèn)我最喜歡的推導(dǎo)式使用指南,讓我們先來(lái)看看定義推導(dǎo)式是的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。 什么是推導(dǎo)式 大家好,今天為大家?guī)?lái)問(wèn)我最喜歡的Python推導(dǎo)式使用指南,讓我們先來(lái)看看定義~ 推導(dǎo)式(comprehensions)是Python的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。...

    hufeng 評(píng)論0 收藏0
  • python基礎(chǔ)教程:list(列表)

    摘要:計(jì)算列表所有元素的和,其元素類型必須是數(shù)值型的整數(shù)浮點(diǎn)數(shù)返回一個(gè)排序的列表,但并不改變?cè)斜?。只有列表所有元素為才返回。列表的?nèi)置方法前面我們說(shuō)的是語(yǔ)言的內(nèi)置函數(shù),這里我們講的是列表本身的內(nèi)置方法。 Python的基本數(shù)據(jù)類型有整數(shù),浮點(diǎn)數(shù),布爾,字符串,它們是最基本的數(shù)據(jù)。在實(shí)際編程中,我們要經(jīng)常組織由很多基本數(shù)據(jù)組成的集合,這些集合的不同組織方式就是:數(shù)據(jù)結(jié)構(gòu),今天講的是數(shù)據(jù)結(jié)構(gòu)中...

    hearaway 評(píng)論0 收藏0
  • Python如何推導(dǎo)處理數(shù)據(jù)

      小編寫(xiě)這篇文章的主要目的,就是給大家介紹下關(guān)于如何使用Python處理推導(dǎo)數(shù)據(jù)的方式,下面給大家貼出具體的代碼,大家要進(jìn)行仔細(xì)的閱讀哦?! ∏把浴 ⊥茖?dǎo)式是一種獨(dú)特的數(shù)據(jù)處理方式,可以快速的從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。常用的推導(dǎo)式有一下四種:  列表推導(dǎo)式  元組推導(dǎo)式  集合推導(dǎo)式  字典推導(dǎo)式  1、列表推導(dǎo)式 #coding:utf-8   #Author:YangXi...

    89542767 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<