Python程序可过滤给定系列中的完美正方形
输入
假设你有一个系列,
0 14 1 16 2 30 3 49 4 80
输出
完美方形元素的结果是,
0 4 1 16 3 49
解决方案1
定义系列。
创建一个for循环并按条件一组接一组地访问数据,以通过将幂2的平方增加0.5来比较该值,并将这些值附加到空列表中。它的定义如下
for i in range(len(data)): for j in data: if(data[i]==int(m.sqrt(j)+0.5)**2): lis.append(data[i])
最后,使用来检查该系列的值列表isin()。
解决方案2
另外,我们可以使用正则表达式和lambda函数过滤方法来找到理想的平方值。
定义一个系列。
应用lambda过滤器方法检查该值是否为完美平方。它的定义如下
l = [14,16,30,49,80] data=pd.Series([14,16,30,49,80]) result =pd.Series(filter(lambda x: x==int(m.sqrt(x)+0.5)**2,l))
最后,使用isin()函数检查该系列的值列表。
例子
让我们看一下下面的实现以获得更好的理解。
import pandas as pd import math as m l = [4,16,30,49,80] data = pd.Series(l) print(data) lis = [] for i in range(len(data)): for j in data: if(data[i]==int(m.sqrt(j)+0.5)**2): lis.append(data[i]) print(data[data.isin(lis)])
输出
解决方案的输出如下-
0 4 1 16 3 49
解决方案3
例子
import re import math as m l = [14,16,30,49,80] data = pd.Series([14,16,30,49,80]) result = pd.Series(filter(lambda x: x==int(m.sqrt(x)+0.5)**2,l)) print(data[data.isin(result)])