Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python-2Dリストをフラット化する方法


リストは、順序付けられて変更可能なコレクションです。 Pythonでは、リストは角かっこで囲まれています。インデックス番号を参照してリストアイテムにアクセスします。負のインデックス付けとは、最後から始まることを意味し、-1は最後のアイテムを指します。範囲を開始する場所と終了する場所を指定することにより、インデックスの範囲を指定できます。範囲を指定すると、戻り値は指定された項目を含む新しいリストになります。

# using chain.from_iterables
# import chain
from itertools import chain
ini_list = [[1, 2, 3],
   [3, 6, 7],
   [7, 5, 4]]    
# printing initial list
print ("initial list ", str(ini_list))
# converting 2d list into 1d
# using chain.from_iterables
flatten_list = list(chain.from_iterable(ini_list))
# printing flatten_list
print ("final_result", str(flatten_list))
# using list comprehension
# import chain
from itertools import chain  
ini_list = [[1, 2, 3],
   [3, 6, 7],
   [7, 5, 4]]            
# printing initial list
print ("initial list ", str(ini_list))  
# converting 2d list into 1d
# using list comprehension
flatten_list = [j for sub in ini_list for j in sub]
# printing flatten_list
print ("final_result", str(flatten_list))
# using functools.reduce  
# import functools
from functools import reduce  
ini_list = [[1, 2, 3],
   [3, 6, 7],
   [7, 5, 4]]              
# printing initial list
print ("initial list ", str(ini_list))  
# converting 2d list into 1d
# using functools.reduce
flatten_list = reduce(lambda z, y :z + y, ini_list)  
# printing flatten_list
print ("final_result", str(flatten_list))
# using sum  
ini_list = [[1, 2, 3],
   [3, 6, 7],
   [7, 5, 4]]  
# printing initial list
print ("initial list ", str(ini_list))  
# converting 2d list into 1d
flatten_list = sum(ini_list, [])  
# printing flatten_list
print ("final_result", str(flatten_list))
ini_list=[[1, 2, 3],
   [3, 6, 7],
   [7, 5, 4]]
#Using lambda  
flatten_list = lambda y:[x for a in y for x in flatten_list(a)] if type(y) is list else [y]
print("Initial list ",ini_list)
#priniting initial list  
print("Flattened List ",flatten_list(ini_list))
# printing flattened list

出力

('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('Initial list ', [[1, 2, 3], [3, 6, 7], [7, 5, 4]])
('Flattened List ', [1, 2, 3, 3, 6, 7, 7, 5, 4])

  1. Pythonでリストをクリアするさまざまな方法

    Pythonリストのすべての要素をクリアするには、さまざまな方法があります。以下は、これを実現するために実装されているいくつかのメソッドです。 clear()を使用する この関数は標準ライブラリの一部であり、Pythonリストを完全に空にします。 Syntax: list_name.clear() list_name is the name of the list supplied by 例 以下の例では、リストを取得してクリア()を適用します。結果は空のリストです。 list = ['Mon', 'Tue', 'Wed', 'Th

  2. Pythonで浅いリストをフラット化する方法は?

    シンプルで簡単な解決策は、2つのネストされたforループを使用して、フラットリストのサブリストからアイテムを追加することです。 lst = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]] flatlist = [] for sublist in lst: for item in sublist: flatlist.append(item) print (flatlist) よりコンパクトでPythonicなソリューションは、itertoolsモジュールのchain()関数を使用することです。 >