我编写了这个 python 函数,它接受一个列表作为参数,并确定列表中的哪些元素是完美的正方形,然后返回一个仅包含这些选择元素的新列表。
这是我的功能:
def square(n):
return n**2
def perfectSquares1(L):
import math
m=max(L)
for n in L:
if type(n) is int and n>0:
Result=map(square,range(1,math.floor(math.sqrt(m))))
L1=list(Result)
L2=list(set(L).intersection(set(L1)))
return L2
但现在我正在尝试对其进行一些修改:我想编写一个单行布尔函数,它以 n 作为参数,如果 n 是一个完美的正方形则返回 True,否则返回 false。
有什么建议吗?我想不出一种方法让它只有一条线。