最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python將多維列表「拉伸」為一維列表的10種方式

2023-09-27 17:42 作者:深度之眼官方賬號  | 我要投稿

來源:投稿 作者:Fairy
編輯:學姐

在Python編程中,列表是一種常用的數(shù)據(jù)類型。當我們遇到了一個嵌套列表,如果想將它扁平化為一維列表,就可以使用下面10種方法之一來實現(xiàn)這個需求。

1. 使用兩層循環(huán)遍歷

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。然后創(chuàng)建了一個空列表new_lst。接下來使用for循環(huán)遍歷lst中的每一個子列表,再使用嵌套的for循環(huán)遍歷子列表中的每一個元素,并將這些元素添加到new_lst中。最后輸出new_lst,即為將lst扁平化為一維列表的結(jié)果。

2. 使用flatten()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用NumPy庫的array()方法將lst轉(zhuǎn)換成了一個NumPy數(shù)組,再調(diào)用該數(shù)組的flatten()方法將其扁平化為一個一維數(shù)組。最后,將該一維數(shù)組轉(zhuǎn)換成一個標準的Python列表,并將其賦值給變量new_lst。最終輸出new_lst,即為將lst扁平化為一維列表的結(jié)果。

3. 使用列表解析式

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。然后,使用一行代碼創(chuàng)建了一個新的一維列表new_lst。具體來說,這行代碼中使用了兩層for循環(huán),并在內(nèi)部使用了列表推導式的語法。在這里,外層for循環(huán)用于遍歷lst中的每一個子列表,而內(nèi)層for循環(huán)則用于遍歷子列表中的每一個元素。最后,在列表推導式中使用了element這個變量來存儲遍歷到的元素,并將其添加到新列表new_lst中。

4. 使用reduce()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用reduce()函數(shù)和operator.concat函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,operator.concat函數(shù)用于將兩個列表連接在一起,而reduce()函數(shù)則用于對lst中的每一個子列表依次執(zhí)行concat操作。最終,reduce函數(shù)得到的結(jié)果是一個一維列表,存儲在變量new_lst中。

5. 使用from_iterable()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用itertools.chain.from_iterable()函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,from_iterable()函數(shù)用于將一個可迭代對象中的所有元素連接到一起,而chain()函數(shù)則用于在多個可迭代對象之間建立鏈接。最終,使用list()函數(shù)將生成的迭代器轉(zhuǎn)換為一個新的一維列表new_lst。

6. 使用sum()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用sum()函數(shù)實現(xiàn)將lst中的所有子列表連接在一起。具體來說,sum()函數(shù)用于對多個可迭代對象進行求和操作,而對于列表而言,在使用sum()函數(shù)時傳入一個空列表[]作為初始值,就可以將多個子列表拼接在一起。最終,使用list()函數(shù)將生成的結(jié)果轉(zhuǎn)換為一個新的一維列表new_lst。

7. 使用ravel()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy中的ravel函數(shù)對lst進行扁平化操作,并將其轉(zhuǎn)換為一個一維數(shù)組。最后,使用list()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

8. 使用reshape()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy.array()函數(shù)將lst轉(zhuǎn)換為一個numpy數(shù)組,并使用reshape()函數(shù)對其進行重新形狀,將其扁平化為一個一維數(shù)組。最后,使用tolist()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

9. 使用flatten()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用numpy.array()函數(shù)將lst轉(zhuǎn)換為一個numpy數(shù)組,并使用flatten()函數(shù)對其進行扁平化操作,將其扁平化為一個一維數(shù)組。需要注意的是,該函數(shù)傳入的參數(shù)'C'表示扁平化時按照行優(yōu)先順序進行,也就是將每一行展開到一起。最后,使用list()函數(shù)將numpy數(shù)組轉(zhuǎn)換為一個新的一維列表new_lst。

10. 使用stack()函數(shù)

這段代碼中,定義了一個二維列表lst,其中包含了三個子列表(即嵌套的列表)。接下來,使用pandas.DataFrame()函數(shù)將lst轉(zhuǎn)換為一個DataFrame數(shù)據(jù)框,并使用stack()函數(shù)對其進行堆疊操作,將其扁平化為一個Series數(shù)據(jù)序列。然后,使用list()函數(shù)將Series轉(zhuǎn)換為一個新的一維列表new_lst。

以上10種方式,你了解哪幾種呢?

推薦課程

《Python ·? AI&數(shù)據(jù)科學入門》

關注“學姐帶你玩AI”公眾號,回復“Python”了解課程詳情~

Python將多維列表「拉伸」為一維列表的10種方式的評論 (共 條)

分享到微博請遵守國家法律
扶绥县| 泰安市| 泽库县| 义马市| 澄迈县| 郴州市| 大石桥市| 牡丹江市| 武冈市| 屏东市| 绥宁县| 玉溪市| 碌曲县| 南昌市| 卓尼县| 乳山市| 新宾| 中宁县| 抚松县| 扶沟县| 大丰市| 铜梁县| 凌海市| 苍山县| 邻水| 龙山县| 平利县| 崇州市| 商南县| 来安县| 新津县| 安顺市| 镇赉县| 阳西县| 来安县| 平潭县| 蓬安县| 博湖县| 万载县| 洞口县| 阿城市|