从旧数组中排除元素并创建新数组

时间:2019-05-30 05:50:17

标签: python arrays

我有一个具有3个不同值的数组,我想创建一个仅具有小于12个值的新数组(例如)。

import array as arr

numbers = arr.array([10,12, 12, 13])

numbers.remove(12)
numbers.remove(13)
print(numbers)

我不知道如何将它们添加到新数组中

4 个答案:

答案 0 :(得分:1)

有几种方法可以解决此问题。这就是我的处理方法。

import array as arr

numbers = arr.array('i', [10,12,12,13])

new_nums = arr.array('i', [i for i in numbers if i<12])

您还可以使用pop()方法,如下所示:

new_nums = arr.array('i', [numbers.pop(i) for i,val in enumerate(numbers) if val<12])

或者,您可以仅在Python列表上使用列表推导,如下所示:

new_nums = [i for i in numbers if i<12]

希望这会有所帮助!

答案 1 :(得分:0)

假设:

  1. 您只希望初始列表中的唯一元素
  2. 元素应小于12

代码:

initial_list = [10, 12, 12, 13]
new_list = [i for i in list(set(initial_list)) if i<12]
print(new_list)

输出:

[10]

说明:

上面的代码首先从初始列表中创建了一组唯一的元素。然后,它使用列表理解选择仅满足条件i<12的项。

注意:如果您必须使用array模块,则使用@Praveenkumar's answer

答案 2 :(得分:0)

numbers = [10,12,13,14]
newarr = []
for i in numbers:
    if i<12:
        newarr.append(i)
print(newarr)

使用python列表并遍历上一个列表(使用列表,而不是数组),检查所需条件,然后将结果添加(追加)到新列表中。

答案 3 :(得分:0)

如果只想坚持使用数组,可以执行以下操作(我不知道为什么要这样做)。 python中的arraylist是不同的东西。

import array as arr

numbers = arr.array('i', [10,11, 12, 13])

print(arr.array('i', filter(lambda x : x < 12, numbers)))