Python 查找元组中给定数据类型的频率
元组是Python中常用的数据类型,表示由逗号分隔的对象或元素的集合。数据类型的频率定义了特定变量类型的计数总数。Python有四种基本变量类型:整数、浮点数、布尔值和字符串。在Python中,我们可以使用一些内建函数(如type()、isinstance()、filter()、lambda、len()和list())来查找Python元组中给定数据类型的频率。
语法
以下语法用于示例-
type()
type() 是 Python 的内置函数,用于返回类型对象。
isinstance()
isinstance()是Python中的内置函数,用于将给定的值与指定的类型进行整合。
filter()
filter()方法应用于根据特定条件筛选项目时。简单来说,它允许用户迭代那些满足条件的元素。
lambda
lambda函数为使用lambda关键字声明简短的匿名函数提供了捷径。当使用def关键字表示时,lambda函数的行为相同。
len()
len() 是Python中的内置函数,它返回对象的长度。
list()
list()是Python中的内置函数,可以将任何值转换为列表形式。
使用简单的for循环
在此程序中,变量count将初始值设置为0,将在计数递增过程中使用。然后使用for循环,其中变量i通过给定的输入元组t进行迭代。接下来,if语句设置了type()[返回特定类型的条件等式]和d_type之间的等价条件。现在,变量count递增1,找到特定数据类型的频率。最后,函数返回生成结果。
示例
# recursive function
def total_freq(t, d_type):
count = 0
for i in t:
if type(i) == d_type:
count += 1
return count
# The tuple elements
my_tup = (5, 8.9, "Box", 3.3, "CAR", 7, 1.0)
# Set the datatype as float
datatype = float
# Calling function
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中获取值。接下来,函数返回使用内置函数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')
# Set the datatype as an integer
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
# The input tuple elements
my_tup = (5, 'abc', 2, 4.8, 7.2, 'is', 4.0)
# Set the datatype as string
d_type = str
# Calling function
freq = data_freq_count(my_tup, d_type)
print("The total frequency of string datatype:", freq)
输出
The total frequency of string datatype: 2
使用filter()函数
该程序使用两个输入变量- my_tuple 和 d_type 来分别存储元组和布尔型数据类型的值。这些变量的值将被函数 data_freq_count() 检索,该函数接受两个参数 t 和 d 来处理数据类型频率的操作。然后它将使用内置的 filter() 函数,该函数接受 lambda 表达式作为参数来计算特定数据类型的总计数。接下来,函数返回值将使用内置函数 len() 和 list() 生成输出。
示例
def data_freq_count(t, d):
filtered_tuple = filter(lambda item: type(item) == d, t)
return len(list(filtered_tuple))
# Initialize the tuple
my_tuple = (5, "PYTHON", 40.0, "JAVA", 5.0, True, False)
d_type = bool
# Calling function
freq = data_freq_count(my_tuple, d_type)
print("The frequency of float datatype:", freq)
输出
The frequency of float datatype: 2
结论
我们讨论了设置特定数据类型并找到其频率的各种方法。有各种内置函数可以使用,例如filter(),type()等,以满足特定条件和操作的需求。这种类型的程序可以作为数据操作和数据分析(如统计分析和机器学习应用)的参考。