我有一个数组
arr=['a','b','c']
和一个变量
var='a'
我正在尝试从数组中删除变量,并将结果数组附加到新数组中。
newarray = []
if var in arr:
newarray.append(arr.remove(var))
print(newarray)
这不会打印任何内容。但是,当我仅运行arr.remove(var)
时,它可以工作...我无法将结果较小的数组附加到新变量中。
答案 0 :(得分:0)
看起来您的代码有点混乱。解决方法如下:
arr = ['a','b','c']
var = 'a'
newarray = []
if var in arr:
newarray.append(var)
arr.remove(var)
print(newarray)
要了解为什么原始代码打印为[None]
,您首先需要了解array.remove()
。 array.remove
是 void函数:它不返回值,仅执行任务。如果尝试在诸如array.append()
之类的函数中获取或调用其返回值,Python将不知道如何反应并返回None
。然后,None
函数将array.append()
值正确地附加到数组。
答案 1 :(得分:0)
根据您的描述,这可能是您想要的:
arr = ['a','b','c']
var = 'a'
newarray = []
if var in arr:
arr.remove(var)
newarray.append(arr)
print(newarray)
输出:
[['b', 'c']]
注意以下输出:
if var in arr:
print(arr.remove(var))
print(newarray.append(arr))
print(newarray)
输出:
None
None
[['b', 'c']]
arr.remove(var)
和newarray.append(arr)
在列表中就位,但不返回任何内容。
因此newarray.append(arr.remove(var))
的意思是newarray.append(None)
答案 2 :(得分:0)
改为使用pop()函数。更改:
newarray.append(var)
print(arr.remove(var))
收件人:
newarray.append(arr.pop(0))
print(newarr)