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

Python-1Dリストを可変長の2Dリストに変換します


Pythonのリストは通常​​、要素が次々にリストされる1Dリストです。しかし、2Dリストでは、外側のリスト内にネストされたリストがあります。この記事では、特定の1Dリストから2Dリストを作成する方法を説明します。また、2Dリスト内の要素数の値をプログラムに提供します。

追加とインデックスの使用

このアプローチでは、2Dリストの各要素をループするforループを作成し、それを作成する新しいリストのインデックスとして使用します。インデックス値をゼロから開始し、2Dリストから受け取る要素に追加することでインデックス値を増やし続けます。

# Given list
listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

# Length of 2D lists needed
len_2d = [ 2, 4]

#Declare empty new list
res = []
def convert(listA, len_2d):
   idx = 0
   for var_len in len_2d:
      res.append(listA[idx: idx + var_len])
      idx += var_len
convert(listA, len_2d)
print("The new 2D lis is: \n",res)

上記のコードを実行すると、次の結果が得られます-

出力

The new 2D lis is:
[[1, 2], [3, 4, 5, 6]]

isliceの使用

islice関数を使用して、2Dリストで必要とされる特定の数の要素で特定のリストをスライスできます。したがって、ここでは2Dリストの各要素を調べ、その値を使用して元のリストを2スライスします。 islice関数を使用するにはitertoolsパッケージが必要です。

from itertools import islice
# Given list
listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']

# Length of 2D lists needed
len_2d = [ 3, 2]

# Use islice
def convert(listA, len_2d):
   res = iter(listA)
   return [list(islice(res,i)) for i in len_2d]
res = [convert(listA, len_2d)]
print("The new 2D lis is: \n",res)

上記のコードを実行すると、次の結果が得られます-

出力

The new 2D lis is:
[[['Sun', 'Mon', 'Tue'], ['Wed', 'Thu']]]

  1. リストを文字列に変換するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リストを指定すると、文字列型に変換する必要があります。 ここでは、上記の問題ステートメントを解決するための4つの異なるアプローチについて説明します- アプローチ1:空の文字列で連結を使用する。 例 def listToString(s):    # empty string    str1 = ""    # traversal    for ele in s:    

  2. Python辞書をリストに変換する方法は?

    Pythonの辞書クラスには、この目的のために3つのメソッドがあります。メソッドitems()、keys()、values()は、それぞれキーと値のペアのタプル、キーのみ、値のみで構成されるビューオブジェクトを返します。組み込みのlistメソッドは、これらのビューオブジェクトをリストオブジェクトに変換します。 >>> d1 = {name: Ravi, age: 23, marks: 56} >>> d1.items() dict_items([(name, Ravi), (age, 23), (marks, 56)]) >>> l1 =