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

同じ連続する要素をPythonのサブリストにパックするプログラム


数値と数値のリストがあるとすると、同じ値の連続する要素をサブリストにパックします。リストには1つしか出現しないため、それ自体のサブリストに含める必要があることに注意する必要があります。

したがって、入力がnums =[5、5、2、7、7、7、2、2、2、2]のような場合、出力は[[5、5]、[2]、[7、 7、7]、[2、2、2、2]]

これを解決するには、次の手順に従います-

  • numsが空の場合、
    • 新しいリストを返す
  • result:=nums [0]
  • を含む別のリストを含むリスト
  • j:=0
  • 1からnumsのサイズの範囲のiの場合は、
    • nums[i]がnums[i-1]と同じでない場合、
      • 結果の最後に新しいリストを挿入します
      • j:=j + 1
    • 結果の最後にnums[i]を挿入[j]
  • 結果を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, nums):
      if not nums:
         return []
      result = [[nums[0]]]
      j = 0
      for i in range(1, len(nums)):
         if nums[i] != nums[i - 1]:
            result.append([])
            j += 1
            result[j].append(nums[i])
      return result
ob = Solution()
nums = [5, 5, 2, 7, 7, 7, 2, 2, 2, 2]
print(ob.solve(nums))

入力

[5, 5, 2, 7, 7, 7, 2, 2, 2, 2]

出力

[[5, 5], [2], [7, 7, 7], [2, 2, 2, 2]]

  1. Pythonで連続する偶数要素を交換する

    numsという数字のリストがあるとすると、連続するすべての偶数整数を相互に交換する必要があります。 したがって、入力がnums =[4、5、6、8、10]の場合、出力は[6、5、4、10、8]になります。 これを解決するには、次の手順に従います- temp:=null 0からnumsのサイズの範囲のiの場合は、 nums [i] mod 2が0と同じ場合、 tempがnullでない場合、 nums [i]、nums [temp]を交換します temp:=null それ以外の場合、 temp:=i 数値を返す 理解を深めるために、次の実装を見てみまし

  2. Pythonのリストで連続する要素のペアリング

    Pythonを使用したデータ分析中に、リストの連続する要素をペアにする必要がある場合があります。この記事では、これを実現するためのさまざまな方法を紹介します。 インデックスと範囲あり リスト要素の連続するインデックスをまとめる式を設計します。次に、範囲関数を適用して、この連続する要素のペアリングが続く最大回数を決定します。 例 listA = [51,23,11,45] # Given list print("Given list A: ", listA) # Use res = [[listA[i], listA[i + 1]]    for i i