объединение двух списков в новый список и сортировка - PullRequest
2 голосов
/ 01 июля 2011
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)

Спасибо!

Ответы [ 3 ]

9 голосов
/ 01 июля 2011
shares_3 = sorted(shares_1 + shares_2)
5 голосов
/ 01 июля 2011

Джош Мэтьюз 'ответ предлагает два хороших метода.Здесь есть несколько общих принципов, которые нужно понять: во-первых, обычно, когда вы вызываете метод, который изменяет список, он также не будет возвращать измененный список.Итак ...

>>> 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]

Secondпомните, что вы не можете никогда назначать вызов функции.

>>> def foo():
...     pass
... 
>>> foo() = 1
  File "<stdin>", line 1
SyntaxError: can't assign to function call
5 голосов
/ 01 июля 2011
shares_3 = shares_1 + shares_2
shares_3.sort()

В качестве альтернативы

shares_1.extend(shares_2)
shares_1.sort()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...