根据条件python3将变量追加到列表

时间:2019-07-13 01:56:13

标签: arrays python-3.x

我有一个数组

arr=['a','b','c']

和一个变量

var='a'

我正在尝试从数组中删除变量,并将结果数组附加到新数组中。

newarray = []

if var in arr:
    newarray.append(arr.remove(var))
    print(newarray)

这不会打印任何内容。但是,当我仅运行arr.remove(var)时,它可以工作...我无法将结果较小的数组附加到新变量中。

3 个答案:

答案 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)