Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
a.append(b)
print(a, b) # [1, 2, 3, [4, 5]] [4, 5]
>>> a, b = [1, 2, 3], [4, 5]
>>> a + b # вот это - конкатенация
[1, 2, 3, 4, 5]
>>> [*a, *b] # работает на версии питона 3.5 и выше
[1, 2, 3, 4, 5]
>>>
>>> a += b # эквивалентно a.extend(b)
>>> a
[1, 2, 3, 4, 5]
[*a, *b] - добавил этот способ с указанием Вашего авторства
a += b # эквивалентно a.extend(b)
a += [b] # эквивалентно a.append(b)
a = set(['a', 'b'])
a = {'a', 'b'}
>>> a = [1, [2, 3], 4]
# В списке ссылка на объект 1, на объект (список), на объект 4
>>> b = a.copy()
# Новый объект список, в котором ровно те же ссылки, в частности ссылка на тот же список
>>> a[1].append(3.5)
# Так как ссылка на список общая, то и список общий
>>> print(b)
[1, [2, 3, 3.5], 4]
>>> from copy import deepcopy
>>> c = deepcopy(a)
>>> a[1].append(3.75)
>>> print(c)
[1, [2, 3, 3.5], 4]
>>> print(a)
[1, [2, 3, 3.5, 3.75], 4]
from copy import deepcopy
a = [1, 2]
b = [3, [[5, [a, 4], a], a, 6], a]
c = deepcopy(b)
a[1] = 9
print(b)
print(c)
c[2][1] = 3
print(c)
print(id(c[2]), id(c[1][1]), id(c[1][0][2]), id(c[1][0][1][0]))
[3, [[5, [[1, 9], 4], [1, 9]], [1, 9], 6], [1, 9]]
[3, [[5, [[1, 2], 4], [1, 2]], [1, 2], 6], [1, 2]]
[3, [[5, [[1, 3], 4], [1, 3]], [1, 3], 6], [1, 3]]
15864976 15864976 15864976 15864976
a = {'a', 'b'}
b = { 'b', 'c'}
c = a & b # c = a.intersection(b)
print(c) # {'b'}
c = a ^ b # c = a.symmetric_difference(b)
print(c) # {'c', 'a'}
В Питоне 3.5 появился новый более изящный способ
dict3 = dict(dict1, **dict2)
>>> x = {"a": 1}
>>> y = {"b": 2}
>>> dict(x.items(), **y)
{'a': 1, 'b': 2}
dict3 = dict(dict1, **dict2)
dict3 = merge(dict1, dict2)
В целом, такая функция в 5 строк пишется. Но, как-то, это unpythonic, нет единственного способа сделать это правильно.
Python: коллекции, часть 3/4: объединение коллекций, добавление и удаление элементов