shares_1 = [50, 100, 75, 200]
shares_2 = [100, 100, 300, 500]
shares_1.extend(shares_2)
print shares_1
输出[50,100,75,200,100,100,300,500]
我想要的是将一个变量分配给合并列表并对列表进行排序。请参阅我的错误尝试以下任何建议?
shares_3.sort() = shares_1.extend(shares_2)
谢谢!
答案 0 :(得分:9)
shares_3 = sorted(shares_1 + shares_2)
答案 1 :(得分:5)
shares_3 = shares_1 + shares_2
shares_3.sort()
可替换地,
shares_1.extend(shares_2)
shares_1.sort()
答案 2 :(得分:5)
Josh Matthews'答案提供了两种不错的方法。但是,这里要理解一些一般原则:首先,通常,当您调用一个改变列表的方法时,它也不会返回更改的列表。所以......
>>> shares_1 = [50, 100, 75, 200]
>>> shares_2 = [100, 100, 300, 500]
>>> print shares_1.extend(shares_2)
None
>>> print shares_1.sort()
None
正如您所看到的,这些方法不返回任何内容 - 它们只是更改它们绑定的列表。另一方面,您可以使用sorted
,不更改列表,而是复制它,对副本进行排序,然后返回副本:
>>> shares_1.extend(shares_2)
>>> shares_3 = sorted(shares_1)
>>> shares_3
[50, 75, 100, 100, 100, 100, 100, 200, 300, 300, 500, 500]
其次,请注意,从不分配给函数调用。
>>> def foo():
... pass
...
>>> foo() = 1
File "<stdin>", line 1
SyntaxError: can't assign to function call