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

Pythonリスト内の各n長の連続するセグメントの平均


数字だけを含むリストがあります。リストから一連の連続番号の平均を取得し、最初の番号から次の番号、次に次の番号へとローリングし続ける予定です。

以下の例は、リストの4つの長さの連続する各要素の平均を見つける要件を単純化したものです。

Given list:
[10,12,14,16,18,20,22,24,26]

Average of every segment of 4 consecutive numbers:

[13.0, 15.0, 17.0, 19.0, 21.0, 23.0]
>

合計と範囲あり

リスト内包法を使用して、収集した数値の数を追跡するために範囲を適用することにより、連続する数値の合計を取得します。次に、ループを使用して、合計をセグメントの長さで分割し続けます。最後に、結果が新しいリストに収集されます。

listA = [10,12,14,16,18,20,22,24,26]
print("Given list:\n",listA)
seg = 4
# List comprehension
res = [sum(listA[m:m + seg])/seg
      for m in range(len(listA) - seg + 1)]
print("new list with averages:\n ",res)

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

Given list:
   [10, 12, 14, 16, 18, 20, 22, 24, 26]
new list with averages:
   [13.0, 15.0, 17.0, 19.0, 21.0, 23.0]

isliceとmeanを使用

このアプローチでは、これらの値をより直接的な方法で計算できるPythonモジュールを利用します。 isslice関数を使用して、指定された範囲内のリストの要素をスライスし続け、平均関数を新しいリストに直接適用して、最終結果を取得します。

from statistics import mean
from itertools import islice

listA = [10,12,14,16,18,20,22,24,26]
print("Given list:\n",listA)

# With islice and mean
listB = zip(*(islice(listA, i, None) for i in range(4)))
res = list(map(mean, listB))

print("new list with averages:\n ",res)

出力

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

Given list:
   [10, 12, 14, 16, 18, 20, 22, 24, 26]
new list with averages:
   [13, 15, 17, 19, 21, 23]

  1. Pythonでリストの平均を見つけますか?

    Pythonは、n個の要素を計算するためのsum関数を提供します。ここでは、この関数を使用して平均を計算します。 アルゴリズム Step 1: input “size of the list” Step 2: input “Element” Step 3: using sum function calculate summation of all numbers. Step 4: calculate average. サンプルコード # Average of a list A=list() n=int(input(Enter the size of the List ::)) print

  2. 文中の各単語を逆にするPythonプログラム?

    ここでは、Python組み込み関数を使用します。まず、文を単語のリストに分割します。次に、各単語を逆にして新しいリストを作成します。ここでは、Pythonリスト内包法を使用し、最後に新しい単語リストを結合して、新しい文を作成します。 例 Input :: PYTHON PROGRAM Output :: NOHTYP MARGORP アルゴリズム Step 1 : input a sentence. And store this in a variable s. Step 2 : Then splitting the sentence into a list of words. w