Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将整数列表拆分为两个列表-偶数和奇数元素_Python_Python 2.7 - Fatal编程技术网

Python 将整数列表拆分为两个列表-偶数和奇数元素

Python 将整数列表拆分为两个列表-偶数和奇数元素,python,python-2.7,Python,Python 2.7,我尝试使用以下代码将整数列表拆分为两个列表,但问题是我不知道如何让程序处理列表中的每个值: a = [1, 4, 7, 3, 2] def group(L): li = [] for i in L: x= i/2 if x == int(x): li.append(i) i.remove(float(i)) print li group(a) 只需使用两个列表即可修改代码以使其正常工作(使用

我尝试使用以下代码将整数列表拆分为两个列表,但问题是我不知道如何让程序处理列表中的每个值:

a = [1, 4, 7, 3, 2]
def group(L):
    li = []
    for i in L:
        x= i/2
        if x == int(x):
            li.append(i)
            i.remove(float(i))
    print li
group(a)

只需使用两个列表即可修改代码以使其正常工作(使用
模运算符
%
比检查x是否为int的实例要好):


只需使用两个列表即可修改代码以使其正常工作(使用
模运算符
%
比检查x是否为int的实例要好):

您可以使用a一次返回两个列表,并且modulo
%
运算符根据元素是偶数还是奇数放置元素(
x%2
x
为偶数时为
0
,在
x
为奇数时为
1

您可以使用a一次返回两个列表,并且modulo
%
运算符根据元素是偶数还是奇数放置元素(
x%2
x
为偶数时为
0
,在
x
为奇数时为
1

我将使用mod(
%2
)来确定偶数/奇数(其中
偶数%2==0
奇数%2==1
。请注意,无论检查的偶数/奇数的符号是什么,这在数学上都有效):

我将使用mod(
%2
)来确定偶数/奇数(其中
偶数%2==0
奇数%2==1
。请注意,无论检查的偶数/奇数的符号是什么,这在数学上都有效):


您可以利用偶数和2的模为零,奇数和2的模不为零的事实:

a = [1,4,7,3,2]

def group(numbers):
    evens = []
    odds = []
    for number in numbers:
        if number % 2 == 0:
            evens.append(number)
        else:
            odds.append(number)
    return evens, odds

evens, odds = group(a)

您可以利用偶数和2的模为零,奇数和2的模不为零的事实:

a = [1,4,7,3,2]

def group(numbers):
    evens = []
    odds = []
    for number in numbers:
        if number % 2 == 0:
            evens.append(number)
        else:
            odds.append(number)
    return evens, odds

evens, odds = group(a)
您可以使用:

其中打印:

42
1 7 3
您可以使用:

其中打印:

42
1 7 3

这里的许多答案都是使用模函数的。因此,这是一种不同的方法,只需检查最右边位的状态即可检测奇数或偶数整数。该解决方案根据该位的状态将每个条目追加到“偶数”或“奇数”列表中。 这样就可以用三行代码实现非常简洁的解决方案:

even,odd=[],[]
for i in a:
    (even,odd)[i >> 0 & 1].append(i)
给出正确的解决方案:

>>> even
[4, 2]
>>> odd
[1, 7, 3]

这里的很多答案都是使用模函数的。因此,这是一种不同的方法,只需检查最右边位的状态即可检测奇数或偶数整数。该解决方案根据该位的状态将每个条目追加到“偶数”或“奇数”列表中。 这样就可以用三行代码实现非常简洁的解决方案:

even,odd=[],[]
for i in a:
    (even,odd)[i >> 0 & 1].append(i)
给出正确的解决方案:

>>> even
[4, 2]
>>> odd
[1, 7, 3]


这是Python 2还是Python 3?因为
i/2
在两个版本中的结果完全不同。在循环列表时不应修改列表,这可能会导致奇怪的问题。另外,我假设您想要
L.remove()
,而不是
I.remove()
。(提示:尽量使用比、
L
li
更好的变量名)@RocketHazmat
L
不被此代码修改?python版本2。7@Riko在这种情况下,
i/2
返回一个
int
(向下舍入)。模块划分
(i%2==0)
似乎是测试偶数/奇数的既定方法。这是Python 2还是Python 3?因为
i/2
在两个版本中的结果完全不同。在循环列表时不应修改列表,这可能会导致奇怪的问题。另外,我假设您想要
L.remove()
,而不是
I.remove()
。(提示:尽量使用比、
L
li
更好的变量名)@RocketHazmat
L
不被此代码修改?python版本2。7@Riko在这种情况下,
i/2
返回一个
int
(向下舍入)。模除法
(i%2==0)
似乎是测试偶数/奇数的既定方法。不完全是。在Python2上,由于
isinstance(i/2,int)
if
isinstance(i,int)
,您将获得
l\u偶数中的所有数字。感谢您的提醒!我使用的是python 3:)修复了它,只使用mod而不使用mod。在Python2上,由于
isinstance(i/2,int)
if
isinstance(i,int)
,您将获得
l\u偶数中的所有数字。感谢您的提醒!我使用的是python 3:)修复了它,改为只使用mod。。。这是Python的索引魔力,它甚至可以用于输入列表中的负整数。@dhke这是因为模的工作方式,而不是索引magic@sgrg人力资源管理。对,Python的
%
返回正数。我被固定在C型模上。我的错。。。。这是Python的索引魔力,它甚至可以用于输入列表中的负整数。@dhke这是因为模的工作方式,而不是索引magic@sgrg人力资源管理。对,Python的
%
返回正数。我被固定在C型模上。我的错。
>>> even
[4, 2]
>>> odd
[1, 7, 3]