Python检查表均匀度
有没有一种类似蟒蛇的方法来找出哪个数字在均匀度上与其他数字不同 例如: 输入:Python检查表均匀度,python,python-3.x,list,list-comprehension,Python,Python 3.x,List,List Comprehension,有没有一种类似蟒蛇的方法来找出哪个数字在均匀度上与其他数字不同 例如: 输入:“2 4 7 8 10”=>输出:3//第三个数字是奇数,其余数字是偶数 输入:“1 2 1”=>2//第二个数字是偶数,而其余的数字是奇数 下面是我的方法,numbers是作为str的输入: def均匀度(数字): bool_number=list(map(lambda i:i%2==0,map(lambda i:int(i),numbers.split(“”))) 如果布尔_数.计数(真)==1: 返回布尔值。索
“2 4 7 8 10”
=>输出:3//第三个数字是奇数,其余数字是偶数
输入:“1 2 1”
=>2//第二个数字是偶数,而其余的数字是奇数
下面是我的方法,numbers
是作为str
的输入:
def均匀度(数字):
bool_number=list(map(lambda i:i%2==0,map(lambda i:int(i),numbers.split(“”)))
如果布尔_数.计数(真)==1:
返回布尔值。索引(真)+1
其他:
返回布尔_编号。索引(False)+1
谢谢如果您只有一个奇数/偶数差异实例,您可以将所有数字转换为1(表示赔率)和0(表示偶数),并根据是否有多个奇数检查前1或前0:
s = "2 4 7 8 10"
odds = [int(n)&1 for n in s.split()]
index = odds.index(sum(odds)==1)+1
print(index) # 3
您可以尝试此函数,它将返回唯一与其他项不同的项的索引,如果出现一个或多个项,则返回-1
def evenness(numbers):
res = list(filter(lambda x: x.count(0) == len(x) -1, [[i if int(n) % 2 else 0 for i, n in enumerate(numbers.split(" "))], [i if not int(n) % 2 else 0 for i, n in enumerate(numbers.split(" "))]]))
return -1 if len(res) != 1 else sum(res[0])
'1 3 5 2 4 8'
的输出是什么?Hi@Ch3steR,目前我没有相同数量的偶数和奇数的测试用例,而且如果字符串中有多个偶数/奇数。不过,谢谢你的提醒,我也必须涵盖它们。你可以回答这个问题,并添加所有相关信息。所以,你希望所有指数在它们的均匀度上处于“关闭”状态吗。例如:“2 4 7 8 9”有更多的偶数而不是奇数,那么您希望这两个索引都是奇数吗?