Python – x 跟随 y 的频率
有时,在Python中使用 Numbers 时,我们可能会遇到一个问题,即我们需要获取一个数字跟随另一个数字的次数。这可以应用于许多领域,例如日间编程和其他领域。让我们讨论可以执行此任务的某些方式。
方法#1:使用循环
这是我们执行此任务的蛮力方式。在此,我们遍历列表并继续检查先前和当前数字的结果并继续递增计数器。
# Python3 code to demonstrate working of
# Frequency of x follow y in Number
# using loop
def count_occ(num, next, prev):
num = str(num)
prev_chr = ""
count = 0
for chr in num:
if chr == next and prev_chr == prev:
count += 1
prev_chr = chr
return count
# initialize Number
test_num = 12457454
# printing original number
print("The original number : " + str(test_num))
# initialize i, j
i, j = '4', '5'
# Frequency of x follow y in Number
# using loop
res = count_occ(test_num, j, i)
# printing result
print("The count of x preceding y : " + str(res))
输出 :
The original number : 12457454
The count of x preceding y : 2
方法 #2:使用循环 + isinstance()
+ 正则表达式
这是可以执行此任务的另一种方式。在此,我们使用正则表达式函数来检查前面的术语,而不是粗暴的方法。
# Python3 code to demonstrate working of
# Frequency of x follow y in Number
# using loop + isinstance() + regex
import re
def count_occ(num, next, prev):
if not isinstance(num, str):
num = str(num)
return len(re.findall(prev + next, num))
# initialize Number
test_num = 12457454
# printing original number
print("The original number : " + str(test_num))
# initialize i, j
i, j = '4', '5'
# Frequency of x follow y in Number
# using loop + isinstance() + regex
res = count_occ(test_num, j, i)
# printing result
print("The count of x preceding y : " + str(res))
输出 :
The original number : 12457454
The count of x preceding y : 2