在 Python 元组中查找给定数据类型的频率

pythonserver side programmingprogramming更新于 2023/12/29 18:33:00

元组是 Python 的一种流行数据类型,表示用逗号分隔的对象或元素的集合。数据类型的频率定义特定变量类型的计数总数。Python 有四种原始变量类型:整数、浮点数、布尔值和字符串。在 Python 中,我们有一些内置函数,例如 type()、isinstance()、filter()、lambda、len() 和 list(),它们将用于查找 Python 元组中给定数据类型的频率。

语法

示例中使用了以下语法-

type()

type() 是 Python 中返回类型对象的内置函数。

isinstance()

isinstance() 是 Python 中将值与给定类型集成的内置函数。

filter()

当根据特定条件过滤项目时,将应用 filter() 方法条件。简单来说,它允许用户迭代那些被提取出来满足条件的元素。

lambda

lambda 函数提供了一种使用 lambda 关键字声明简短匿名函数的快捷方式。 lambda 函数在使用 def 关键字表达时会起作用。

len()

len() 是 Python 中内置的函数,可返回对象的长度。

list()

list() 是 Python 中内置的函数,可将任何值转换为列表形式。

使用简单的 for 循环

在此程序中,变量 count 将初始值存储为 0,该值将在计数器递增期间使用。然后使用 for 循环,其中变量 i 遍历给定的输入元组,即 t。接下来,if 语句设置 type()[返回特定类型] 和 d_type 之间的等价条件。现在变量 count 递增 1,从而找到特定数据类型的频率。最后函数返回生成结果。

示例

# 递归函数
def total_freq(t, d_type):
    count = 0
    for i in t:
        if type(i) == d_type:
            count += 1
    return count
# 元组元素
my_tup = (5, 8.9, "Box", 3.3, "CAR", 7, 1.0)
# 将数据类型设置为浮点型
datatype = float
# 调用函数
freq = total_freq(my_tup, datatype)
print("The frequency of", datatype, ":\n", freq)

输出

 The frequency of <class 'float'> : 3

使用列表推导

在下面的例子中,我们将通过定义一个名为 data_freq_count() 的函数来启动程序,该函数接受两个参数 - t 和 datatype,通过函数调用从变量 my_tup 和 d_type 中获取值。接下来,函数 return 使用内置函数 sum() 生成值 1,其中变量 item 遍历变量 t。使用 if 语句,它将条件设置为 type(),相当于变量 datatype,用于查找属于特定数据类型的元素。最后,它将显示结果。

示例

def data_freq_count(t, datatype):
    return sum(1 for item in t if type(item) == datatype)
my_tup = (1, 'A', 2, 'B', 3.9, 15, 0, 'True')
# 将数据类型设置为整数
d_type = int
freq = data_freq_count(my_tup, d_type)
print("The total count of integer frequency is ", freq)

输出

 The total count of integer frequency is  4

使用 isinstance() 函数

在下面的例子中,变量 cnt 初始化为初始值 0,该值将在输入元组的迭代过程中使用。使用 for 循环,变量 i 从变量 t 迭代每个单独的元组元素。接下来,它将使用 if 语句将条件设置为内​​置函数 isinstance(),该函数接受两个参数 - i 和 d,用于比较给定元组中存在的特定数据类型的值。然后借助 += 运算符将变量 cnt 增加 1 并返回程序的结果。

示例

def data_freq_count(t, d):
    cnt = 0
    for i in t:
        if isinstance(i, d):
            cnt += 1
    return cnt
# 输入元组元素
my_tup = (5, 'abc', 2, 4.8, 7.2, 'is', 4.0)
# 将数据类型设置为字符串
d_type = str
# 调用函数
freq = data_freq_count(my_tup, d_type)
print("字符串数据类型的总频率:", freq)

输出

字符串数据类型的总频率:2

使用 filter() 函数

该程序使用两个输入变量 - my_tuple 和 d_type 分别将值存储为元组和 bool 数据类型。这些变量的值将由名为 data_freq_count() 的函数获取,该函数接受两个参数 - t 和 d 来执行数据类型频率的操作。然后它将使用内置的 filter() 函数(该函数接受 lambda 作为参数)来计算特定数据类型的总数。接下来,函数 return 将使用内置函数 len() 和 list() 来生成输出。

示例

def data_freq_count(t, d):
    filtered_tuple = filter(lambda item: type(item) == d, t)
    return len(list(filtered_tuple))
# 初始化元组
my_tuple = (5, "PYTHON", 40.0, "JAVA", 5.0, True, False)
d_type = bool
# 调用函数
freq = data_freq_count(my_tuple, d_type)
print("浮点数据类型的频率:", freq)

输出

浮点数据类型的频率:2

结论

我们讨论了设置特定数据类型和查找其频率的各种方法。有各种内置函数可用,例如 filter()、type() 等,可满足特定条件和操作的需求。这种类型的程序可以作为数据操作和数据分析(例如统计分析和 ML 应用)的参考。


相关文章