Python程序筛选给定序列中的完全平方数
输入 −
假设你有一个序列,
0 14
1 16
2 30
3 49
4 80
输出 −
完全平方数的结果如下,
0 4
1 16
3 49
更多Python相关文章,请阅读:Python 教程
解决方案1
我们可以使用正则表达式和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(“序列中的完全平方数:\n”, data[data.isin(lis)])
输出
给定序列:
0 4
1 16
2 30
3 49
4 80
dtype: int64
序列中的完全平方数:
0 4
1 16
3 49
dtype: int64
解决方案2
示例
import re
import math as m
l = [14,16,30,49,80]
data = pd.Series([14,16,30,49,80])
print(“给定序列:\n”, data)
result = pd.Series(filter(lambda x: x==int(m.sqrt(x)+0.5)**2,l))
print(data[data.isin(result)])
输出
给定序列:
0 14
1 16
2 30
3 49
4 80
dtype: int64
完全平方数:
1 16
3 49
dtype: int64