Python 将列表拆分为奇数和偶数两个条目列表

Python 将列表拆分为奇数和偶数两个条目列表,python,python-2.7,for-loop,infinite-loop,Python,Python 2.7,For Loop,Infinite Loop,我使用的是Python101版本4.1 输入示例为(1,4,6,2,53,7) 所需输出为偶数(2,4,6)奇数(1,7,53) 我需要在这个问题中使用一个只有1个输入的函数,它将是列表,我认为一个循环会有帮助,但我仍然无法得到它。我尝试使用以下代码: from math import * from string import * def odd_even(L): list1=raw_input() list1=list1.split(" ") even=[] o

我使用的是Python101版本4.1

输入示例为(1,4,6,2,53,7)

所需输出为偶数(2,4,6)奇数(1,7,53)

我需要在这个问题中使用一个只有1个输入的函数,它将是列表,我认为一个循环会有帮助,但我仍然无法得到它。我尝试使用以下代码:

from math import *
from string import *
def odd_even(L):
    list1=raw_input()
    list1=list1.split(" ")
    even=[]
    odd=[]
    for x in list1:
        if x%2==0:
            even.append(L)
        else:
            odd.append(L)
    return even,odd

L=input()
print odd_even(L)

很高兴你现在发布了一些代码;最好是编辑第一个问题

你就快到了:

# Module import is not necessary.

def odd_even(L):
    #    list1=raw_input()       # <--- no need for raw input here
    #    list1=list1.split(" ")  # <--- nor here
    even=[]
    odd=[]
    for x in L:
        if x%2==0:
            even.append(x)
        else:
            odd.append(x)
    return even,odd

L= range(20)                      # <--- can replace with raw_input if you need to
print odd_even(L)
#不需要导入模块。
def奇偶(L):
#列表1=原始输入()
  • 为什么在函数中使用
    input()
  • 使用
    input()
    时,会得到一个字符串,但函数需要整数,因此必须对输入列表的每个元素应用
    int()

  • def odd_even(L):
        even=[]
        odd=[]
        for x in L:
            if x%2==0:
                even.append(x)
            else:
                odd.append(x)
        return even, odd
    
    
    L = input()
    L = L.split(" ")
    L = list(map(int, L))
    print(odd_even(L))
    

    输入数字并进行排序:

    def odd_even(numbers):
        result = [], []
        for number in numbers:
            result[number%2].append(number)
        return result
    
    def main():
        numbers = raw_input('Enter numbers:')
        numbers = map(int, numbers.split())
        even, odd = odd_even(numbers)
        print "even", even
        print "odd", odd
    
    if __name__ == '__main__':
        main()
    

    下面是一个返回键为“偶数”和“奇数”的字典的解决方案:


    使用条件表达式时相同但不同:

    def is_even(n):
        return not n % 2
    
    def split_odd_even(L):
        '''Split a list of numbers into odds and evens.
    
        L --> list
        returns tuple of two lists
        '''
        odd, even = list(), list()
        for n in L:
            even.append(n) if is_even(n) else odd.append(n)
        return odd, even
    
    print split_odd_even(range(20))
    >>> ([1, 3, 5, 7, 9, 11, 13, 15, 17, 19], [0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
    

    你为什么不编辑上一个问题?@EduardGamonal:不一定,这个问题的代码基于其中一个答案。。我想说,边缘情况。为什么在函数中使用更多的输入调用?你对这里的
    L
    list1
    感到困惑。而且,没有必要导入
    math
    string
    模块。我想Martijn Pieters在我编辑帖子的同时编辑了我的帖子,然后我把他的编辑搞砸了。。。我也找不到一个地方接受编辑。。。抱歉,仍在学习中。别担心,@Martijn有足够的代表,不需要编辑批准(他正在修复您的一些缩进)。。。这篇文章最后看起来不错:)
    def is_even(n):
        return not n % 2
    
    def split_odd_even(L):
        '''Split a list of numbers into odds and evens.
    
        L --> list
        returns tuple of two lists
        '''
        odd, even = list(), list()
        for n in L:
            even.append(n) if is_even(n) else odd.append(n)
        return odd, even
    
    print split_odd_even(range(20))
    >>> ([1, 3, 5, 7, 9, 11, 13, 15, 17, 19], [0, 2, 4, 6, 8, 10, 12, 14, 16, 18])