您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python實現嵌套列表的方法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python實現嵌套列表的方法有哪些”吧!
data = [[1,2,3],[4],[5,6,7],[8,9],[10]] # 模擬數據 data
[[1, 2, 3], [4], [5, 6, 7], [8, 9], [10]]
這份模擬的數據有2個特點:
嵌套列表只有兩層
里面的元素也全部是列表類型
最容易想到的方式就是for循環:
for i in data: print(type(i))
<class 'list'> <class 'list'> <class 'list'> <class 'list'> <class 'list'>
# 導入Iterable 模塊 from collections import Iterable sum_data = [] for i in data: if isinstance(i,Iterable): # 如果可迭代(比如列表形式) for j in i: # 再次循環追加元素 sum_data.append(j) else: sum_data.append(i) # 否則直接追加 sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for循環能夠實現,那么列表推導式肯定也可以:
sum_data = [i for j in data if isinstance(j,Iterable) for i in j] # 循環一定是從大到小 sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
借助第三方的庫itertools:
import itertools # 通過chain方法從可迭代對象中生成;最后展開成列表 sum_data = list(itertools.chain.from_iterable(data)) sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum_data = sum(data, []) sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum_data = [] for i in data: sum_data += i # 實現自加 sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
如何快速理解python的extend函數,給個案例
# 如何理解python的extend函數 list1 = [1,2,3,4] list1.extend([5,6]) # 追加功能extend;就地修改 list1 # list1已經發生了變化
[1, 2, 3, 4, 5, 6]
sum_data = [] for i in data: sum_data.extend(i) # 對空列表逐步追加 sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data
[[1, 2, 3], [4], [5, 6, 7], [8, 9], [10]]
def flatten(data): # 定義遞歸函數 sum_data = [] for i in data: if isinstance(i, Iterable): # 如果i是可迭代的對象(列表等),調用函數本身;直到執行else語句 sum_data.extend(flatten(i)) else: sum_data.append(i) return sum_data
sum_data = flatten(data) # 調用遞歸函數 sum_data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
感謝各位的閱讀,以上就是“Python實現嵌套列表的方法有哪些”的內容了,經過本文的學習后,相信大家對Python實現嵌套列表的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。