我的Python 2程序有一个小问题。
这是我的功能:
def union(q,p):
q = q + p
q = set(q)
return q, p然后我创建了新的两个列表并调用了我的函数:
a = [1,2,3]
b = [2,4,6]
union(a,b)最后我要打印出a和b
>>>print a
[1,2,3]
>>>print b
[2,4,6]如您所见,我的函数没有更改a的值。为什么?我怎么才能解决呢?我做错了什么?
注意: a过去是[1,2,3,4,6]而不是[1,2,3]
谢谢。
发布于 2013-08-14 11:23:17
将返回值赋值给a和b
>>> def union(q,p):
... q = q + p
... q = set(q)
... return q, p
...
>>> a = [1,2,3]
>>> b = [2,4,6]
>>> a, b = union(a, b)
>>> a
set([1, 2, 3, 4, 6])
>>> b
[2, 4, 6]要从set获取列表,请使用list作为Haidro的注释:
>>> list(a)
[1, 2, 3, 4, 6]发布于 2013-08-14 11:23:13
您的函数没有改变它的位置,它返回新的项。因此,必须将结果返回给一个变量:
a, b = union(a, b)发布于 2013-08-14 11:23:18
您的函数从不在a中对对象进行变异。要么修改它,要么将函数返回的值赋值给它。
https://stackoverflow.com/questions/18230341
复制相似问题