Python - 元組列表中第 K 個索引的平均值
在 Python 中查詢第 K 個索引的元組列表是一個重要的程式設計概念。問題陳述是,我們需要找到元組元素中所有位於第 K 個索引處的元素的平均值。這些元組將聚合到列表資料型別中。在本文中,我們將採用不同的方法,例如使用 while 迴圈、列表推導式以及 Pandas、NumPy、Statistics 等庫。
理解問題陳述
我們的輸入應該包含一個元組列表和 K 的值。
list: [(1, 2, 3), (4, 5, 6), (7, 8, 9)] k: 1
我們需要找到第 K 個元素的平均值(平均數)。我們將把 K 視為索引。因此,K=1 處的元素是
(4, 5, 6)
數字的平均值:(4+5+6)/3=15/3=5。
Output: 5
使用迴圈
迴圈是 Python 中一個重要的語句。迴圈語句允許我們迭代可迭代物件。我們可以採用以下方法來查詢第 K 個索引元組列表的平均值
首先,初始化一個變數,例如“sum”和“count”。
遍歷元組元素。
使用元組的索引屬性訪問第 K 個元素並將其新增到 sum 中。
在每次迭代中將“count”的值遞增 1。
“sum/count”給出所需答案。
示例
在下面的示例中,我們使用 kth_index_tuple_list_mean 來查詢第 K 個索引元組列表。我們初始化了兩個名為“total”和“count”的變數。接下來,我們遍歷列表,在每次迭代中,我們使用索引屬性來訪問第 K 個元素。我們將第 K 個元素不斷新增到初始化的變數“total”中。對於每次迭代,我們將 count 的值遞增 1。最後,我們返回“total/count”。
def kth_index_tuple_list_mean(tuples_list, k):
total = 0
count = 0
for tuple_item in tuples_list:
if len(tuple_item) > k:
total += tuple_item[k]
count += 1
if count > 0:
return total / count
else:
return None
tuples_list = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
k = 1
result = kth_index_tuple_list_mean(tuples_list, k)
print(f"The mean of the kth elements of the tuples of the list is: {result}")
輸出
The mean of the kth elements of the tuples of the list is: 5.0
使用列表推導式
列表推導式是 Python 中一種流行的方法,用於生成列表的元素。列表推導式允許開發人員將多個語句、條件等組合到單個語句中,並根據該語句生成列表元素。使用此技術的好處是它使程式碼更簡潔緊湊。
示例
在以下程式碼中,我們使用了列表推導式方法。我們只獲取了列表中每個元組的長度大於“k”的那些元組。接下來,我們再次使用列表推導式方法和 sum 方法來查詢有效元素的總和。我們將結果除以有效元素的長度。
def kth_index_tuple_list_mean(tuples_list, k):
valid_tuples = [tuple_item for tuple_item in tuples_list if len(tuple_item) > k]
if valid_tuples:
return sum(tuple_item[k] for tuple_item in valid_tuples) / len(valid_tuples)
else:
return None
tuples_list = [(8, 2, 7), (9, 5, 3), (7, 3, 9), (7,8,5)]
k = 2
result = kth_index_tuple_list_mean(tuples_list, k)
print(f"The mean of the kth elements of the tuples of the list is: {result}")
輸出
The mean of the kth elements of the tuples of the list is: 6.0
使用 NumPy 陣列
NumPy 是一個流行的 Python 庫,用於數值計算。它引入了陣列,這是一種專門的資料結構,只能儲存同構資料型別。NumPy 提供了用於陣列操作、數學運算、統計等的高效函式和方法。它提供了最佳化的演算法、可擴充套件性和與 Pandas 和 Matplotlib 等其他庫的整合。NumPy 對於涉及數值資料和 Python 中科學計算的任務至關重要。
示例
在以下程式碼中,我們使用了 NumPy 陣列。首先,我們將 NumPy 庫匯入到我們的程式碼中。接下來,我們建立了函式 kth_index_tuple_list_mean,它接收列表和值“k”。我們使用列表推導式將元組的第 K 個元素追加到列表中,並使用 NumPy 的“array”方法將其轉換為陣列。接下來,如果生成的陣列的大小非零,我們就返回平均值。
import numpy as np
def kth_index_tuple_list_mean(tuples_list, k):
array = np.array([tuple_item[k] for tuple_item in tuples_list if len(tuple_item) > k])
if array.size > 0:
return np.mean(array)
else:
return None
tuples_list = [(8, 2, 7), (9, 5, 3), (7, 3, 9), (7,8,5)]
k = 0
result = kth_index_tuple_list_mean(tuples_list, k)
print(f"The mean of the kth elements of the tuples of the list is: {result}")
輸出
The mean of the kth elements of the tuples of the list is: 7.75
使用 Pandas 庫
Pandas 是一個流行的 Python 庫,用於資料操作、清理和分析。在機器學習或深度學習之前,我們在 Python 中大量使用該庫進行資料分析。Pandas 處理資料框,這是一種具有行和列的特殊資料結構。Pandas 提供了一些內建的方法和函式,我們可以使用它們來執行許多工。
示例
在下面的示例中,我們首先匯入了 pandas 庫。接下來,我們建立了函式 kth_index_tuple_list_mean。在函式中,我們首先將列表轉換為資料框。我們使用了 dropna 方法來刪除除第 K 個元素之外的其他值。接下來,我們使用 mean 列表方法來查詢有效值的平均值。
import pandas as pd
def kth_index_tuple_list_mean(tuples_list, k):
df = pd.DataFrame(tuples_list)
valid_tuples = df[df.columns[k]].dropna()
if not valid_tuples.empty:
return valid_tuples.mean()
else:
return None
tuples_list = [(7, 2, 7), (9, 5, 3), (7, 3, 9), (7,8,5)]
k = 0
result = kth_index_tuple_list_mean(tuples_list, k)
print(f"The mean of the kth elements of the tuples of the list is: {result}")
輸出
The mean of the kth elements of the tuples of the list is: 7.5
使用列表推導式和 Statistics 庫
Python 中的 Statistics 庫是執行統計分析和計算的強大工具。它提供了一系列用於處理資料和提取有用見解的函式和方法。該庫對於處理集中趨勢(如平均值、中位數、眾數、標準差、方差等)非常有用。
示例
在以下程式碼中,我們結合了列表推導式和 statistics 庫來查詢第 K 個索引元組列表的平均值。我們使用列表推導式將元組的第 K 個元素追加到列表“valid_values”中,其中元組的長度大於 k。接下來,我們使用 Python 的“mean”方法來查詢數字的平均值。
import statistics
def kth_index_tuple_list_mean(tuples_list, k):
valid_values = [tuple_item[k] for tuple_item in tuples_list if len(tuple_item) > k]
if valid_values:
return statistics.mean(valid_values)
else:
return None
tuples_list = [(7, 2, 7), (9, 5, 3), (7, 3, 9), (7,8,5)]
k = 0
result = kth_index_tuple_list_mean(tuples_list, k)
print(f"The mean of the kth elements of the tuples of the list is: {result}")
輸出
The mean of the kth elements of the tuples of the list is: 7.5
結論
本文教我們如何處理 Python 中的第 K 個索引元組列表的平均值。Python 是一種通用的程式語言,它為我們提供了各種庫和包來處理它。我們使用了迴圈語句來執行此操作。接下來,我們還了解了其他方法(如列表推導式、Pandas、NumPy 等)如何提供更便捷的方式來執行此操作。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP