在python中查找不同的对及其乘积
我正在学习python,我不希望得到答案。我真的需要帮助 我得到了多个列表,我需要检查这些列表,以确保: a) 这不是一个空列表 b) 列表中有多个整数 c) 通过检查不同的对,检查列表中的整数是否具有偶数乘积值或奇数乘积值。例如在python中查找不同的对及其乘积,python,Python,我正在学习python,我不希望得到答案。我真的需要帮助 我得到了多个列表,我需要检查这些列表,以确保: a) 这不是一个空列表 b) 列表中有多个整数 c) 通过检查不同的对,检查列表中的整数是否具有偶数乘积值或奇数乘积值。例如list1=[1,2,3]。这将返回False,因为产品是均匀的list2=[3,2,3]将返回True,因为两个奇数对的乘积是奇数 以下是我的一些想法: a) 要检查是否为空列表,请键入: if not myList: return(False) 或 (
list1=[1,2,3]
。这将返回False,因为产品是均匀的list2=[3,2,3]
将返回True,因为两个奇数对的乘积是奇数
以下是我的一些想法:
a) 要检查是否为空列表,请键入:
if not myList:
return(False)
或
(b)
或
因为如果有两个偶数双打,那么它将返回偶数。我只想找到那个奇怪的产品
if len(myList) % 2 != 0:
for i in myList:
if i % i == 1:
return(True)
else:
return(False)
我应该测试一下,但实际上我刚刚写下这个。找到配对是相当困难的
我想如果最终结果是1,那么它们是相同的数字-对吗?这是我第一次使用这个网站,所以我不熟悉标准的提问方式(虽然我读过规则)
对不起,如果这是长期和感谢谁帮助了我
a) 这不是一个空列表
您的空容器检查似乎没有问题(只需去掉括号)
b) 列表中有多个整数
这不起作用,这是数字检查而不是列表长度检查:
if myList != 1:
return(True)
相反,您可能希望(这也会处理案例“a”):
但是模运算符%
是除法,与乘法一样昂贵。为了避免这种情况,我们可以按位操作:
def are_all_odd(myList): # odd product True; even product False
return all(element & 1 for element in myList)
def is_any_even(myList): # even product True; odd product False
return any(~element & 1 for element in myList)
使用生成器作为
any()
和all()
的输入意味着一旦确定答案,这些生成器将停止。但是,数据的顺序可能不是最佳的,以尽量减少测试次数。应该知道,在上面显示的所有选项中,最惯用和“pythonic”的是,如果不是lst
,因为两个奇数对的乘积是奇数的
我不太理解这里需要的逻辑!我也不懂c)。您是指检查列表中每个整数的乘积是偶数还是奇数?在学习python时,请尝试在程序中使用而不是。请澄清c部分的问题以及您的逻辑。您的Python使用不够强大,以至于您的代码无法自圆其说。例如,i%i始终为0:任何数字都会将自身等分。您似乎还混淆了列表及其内容:myList与myList[0]不同。
if len(myList) % 2 == 0:
return(False)
if len(myList) % 2 != 0:
for i in myList:
if i % i == 1:
return(True)
else:
return(False)
if not myList:
return False
if myList != 1:
return(True)
if len(myList) < 2:
return False
def are_all_odd(myList): # odd product True; even product False
return all(element % 2 for element in myList)
def is_any_even(myList): # even product True; odd product False
return any(element % 2 == 0 for element in myList)
def are_all_odd(myList): # odd product True; even product False
return all(element & 1 for element in myList)
def is_any_even(myList): # even product True; odd product False
return any(~element & 1 for element in myList)