摘要:如何合并兩個(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)
方案2def 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
摘要:和的的區(qū)別和的的區(qū)別返回列表,返回迭代器,節(jié)約內(nèi)存當(dāng)后面沒(méi)有元素可以的時(shí)候,彈出錯(cuò)誤等是可迭代的但不是迭代器,因?yàn)楹瘮?shù)無(wú)法調(diào)用它們。等是可迭代的但不是迭代器,因?yàn)楹瘮?shù)無(wú)法調(diào)用它們。 ...
摘要:查看原函數(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ǔ)...
摘要:什么是推導(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)體。...
摘要:計(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)中...
小編寫(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...
閱讀 2796·2023-04-26 01:47
閱讀 3602·2023-04-25 23:45
閱讀 2482·2021-10-13 09:39
閱讀 618·2021-10-09 09:44
閱讀 1808·2021-09-22 15:59
閱讀 2787·2021-09-13 10:33
閱讀 1734·2021-09-03 10:30
閱讀 667·2019-08-30 15:53