リスト要素を左または右からスクイーズしてPythonで単一要素にするプログラム
numsと呼ばれる数値のリストがあるとすると、残りの要素が1つになるまで、左と右の両方からそれを絞る必要があります。各ステップで状態を返します。
したがって、入力がnums =[10,20,30,40,50,60]の場合、出力は
になります。[ [10, 20, 30, 40, 50, 60], [30, 30, 40, 110], [60, 150], [210] ]
これを解決するには、次の手順に従います-
- ret:=1つの要素番号のみを含むリスト
- numsのサイズが1より大きい場合は
- numsのサイズが2と同じ場合、
- nums:=要素(nums [0] + nums [1])を使用してリストを作成します
- それ以外の場合、numsのサイズが3と同じ場合、
- nums:=要素(nums [0] + nums [1] + nums [2])でリストを作成します
- それ以外の場合、
- nums:=要素(nums [0] + nums [1])でリストを作成し、インデックス2のnumsからnumsの最後から3番目の要素まで別のリストを挿入し、要素(numsの最後から2番目の要素+ numsの最後の要素)
- retの最後に数字を挿入
- numsのサイズが2と同じ場合、
- return ret
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, nums): ret = [nums] while len(nums) > 1: if len(nums) == 2: nums = [nums[0] + nums[1]] elif len(nums) == 3: nums = [nums[0] + nums[1] + nums[2]] else: nums = [nums[0] + nums[1]] + nums[2:-2] + [nums[-2] + nums[-1]] ret.append(nums) return ret ob = Solution() print(ob.solve([10,20,30,40,50,60]))
入力
[10,20,30,40,50,60]
出力
[ [10, 20, 30, 40, 50, 60], [30, 30, 40, 110], [60, 150], [210] ]
-
要素がタプルになるまでリスト内の要素をカウントするPythonプログラム?
Aは与えられたリストです。このリストにはネストされたタプルがあります。私たちのタスクは、要素がタプルになるまでリスト内の要素をカウントすることです。ここでは、isinstance()関数を使用します。この関数には2つのパラメーターobjectがあり、classinfo.objectがチェックされ、classinfoはクラス、タイプ、またはクラスとタイプのタプルです。この関数は、オブジェクトがas classのインスタンスまたはサブクラスである場合はtrueを返し、それ以外の場合はタプルの任意の要素を返します。 Input : A=[4, 5, 6, 10,22,33, (1, 2, 3),
-
リストから重複要素を削除するPythonプログラム?
1つのリストには重複要素が含まれています。私たちのタスクは、重複なしの要素を含む別のリストを作成することです。 例 A::[2,3,4,3,4,6,78,90] Output::[2,3,4,6,78,90] アルゴリズム Step 1: create a list. Step 2: create a new list which is empty. Step 3: traverse every element in list. Step 4: if element is not present in the list return true. Step 5: append in the