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 等)如何提供更便捷的方式来执行此操作。

更新于:2023年7月18日

133 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告