我有一个具有3个不同值的数组,我想创建一个仅具有小于12个值的新数组(例如)。
import array as arr
numbers = arr.array([10,12, 12, 13])
numbers.remove(12)
numbers.remove(13)
print(numbers)
我不知道如何将它们添加到新数组中
答案 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)
假设:
代码:
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中的array
和list
是不同的东西。
import array as arr
numbers = arr.array('i', [10,11, 12, 13])
print(arr.array('i', filter(lambda x : x < 12, numbers)))