您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Python的奇数/偶数列表中删除偶数/奇数

从Python的奇数/偶数列表中删除偶数/奇数

因为你的第一个尝试失败if总是要真实 。您将始终拥有至少包含1个元素的列表;要么单数是奇数,并且您测试了带有所有偶数的列表,否则您的列表中就有一个 偶数。只有一个 列表将为假。

列表理解不是最好的解决方案,不是。尝试用最少的元素检查数来解决(如果前两个元素在类型上不同,则获得第三个来打破平局,否则迭代直到找到不适合尾部的元素):

def find_outlier(iterable):
    it = iter(iterable)
    first = next(it)
    second = next(it)
    parity = first % 2
    if second % 2 != parity:
        # odd one out is first or second, 3rd will tell which
        return first if next(it) % 2 != parity else second
    else:
        # the odd one out is later on; iterate until we find the exception
        return next(i for i in it if i % 2 != parity)

StopIteration如果输入可迭代输入中的元素少于3个,或者没有异常,则以上内容将引发异常。它也不会处理一个以上异常的情况(例如2个偶数后跟2个奇数;在这种情况下将返回第一个奇数)。

python 2022/1/1 18:26:21 有191人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶