此函数将两个列表作为输入,并检查list1中元素的正方形和立方体是否出现在list2中。如果list1中所有元素的正方形或立方体都出现在list2中,则此函数应返回string。
def list_oper(list1,list2):
square_nums = list(map(lambda x: x ** 2, list1))
cube_nums = list(map(lambda x: x ** 3, list1))
if (x in square_nums for x in list2):
print("Squares are only present")
elif(x in cube_nums for x in list2):
print("Cubes are only present")
else:
print("No such pattern is present")
if __name__=='__main__':
list1 = ast.literal_eval(input())
list2 = ast.literal_eval(input())
print(list_oper(list1,list2))
当我传递list1 =[1,2,3,4]和list2 =[1,8,27,64,100]时,它只显示正方形,而不是立方体。
4条答案
按热度按时间8ehkhllq1#
在
将elif改为if,并将else也改为if。
nx7onnlm2#
当我们使用一个
elif
时,它只会执行之前所有不满足的if
和elif
条件。mhd8tkvw3#
如果满足
if
条件,则只需终止,它不会运行elif
块。您可以转换为if
条件。您可以看到我使用
set()
的另一种方法测试用例1:当立方体和正方形都存在时
测试用例2:当存在正方形时
测试用例3:当存在立方体时
测试用例4:当不满足任何条件时!!
vjhs03f74#
正确,
1 ** 2 == 1
如果您只想打印所有匹配的列表,elif语句。