gpt4 book ai didi

Python - 将整数列表拆分为正数和负数

转载 作者:行者123 更新时间:2023-12-04 00:30:14 24 4
gpt4 key购买 nike

我正在学习 python,我想知道拆分列表的方法是什么:

A = [1, -3, -2, 8, 4, -5, 6, -7]

分成两个列表,一个包含正整数,另一个包含负整数:
B = [1, 8, 4, 6]
C = [-3, -2, -5, -7]

最佳答案

您可以使用 defaultdict() 在 O(n) 中完成此操作:

In [3]: from collections import defaultdict

In [4]: d = defaultdict(list)

In [5]: for num in A:
...: if num < 0:
...: d['neg'].append(num)
...: else: # This will also append zero to the positive list, you can change the behavior by modifying the conditions
...: d['pos'].append(num)
...:

In [6]: d
Out[6]: defaultdict(<class 'list'>, {'neg': [-3, -2, -5, -7], 'pos': [1, 8, 4, 6]})
另一种方法是使用两个单独的列表推导式(不推荐用于长列表):
>>> B,C=[i for i in A if i<0 ],[j for j in A if j>0]
>>> B
[-3, -2, -5, -7]
>>> C
[1, 8, 4, 6]
或者作为纯函数式方法,您也可以使用 filter 如下:
In [19]: list(filter((0).__lt__,A))
Out[19]: [1, 8, 4, 6]

In [20]: list(filter((0).__gt__,A))
Out[20]: [-3, -2, -5, -7]

关于Python - 将整数列表拆分为正数和负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com