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)])

猜你喜欢