2011-01-13 4 views

ответ

10

Я не уверен в графике, но в основном:

Mutable:

list, dictionary, bytearray Примечание: bytearray не является последовательностью, хотя.

Неизменный:

tuple, str

Вы можете проверить изменчивостью с:

>>> import collections 
>>> l = range(10) 
>>> s = "Hello World" 
>>> isinstance(l, collections.MutableSequence) 
True 
>>> isinstance(s, collections.MutableSequence) 
False 

Для словаря (отображение):

>>> isinstance({}, collections.MutableMapping) 
True 
+0

Это проверяет, является ли это измененная последовательность - не является ли это изменчивым объектом. Дикты - явно изменяемые объекты, но 'isinstance ({}, collections.MutableSequence)' false. –

+0

Да, для dicts используется 'MutableMapping'. Я не упоминал, потому что я взял пример списка. Я обновлю его. – user225312

+0

Это не работает для наборов. Моя точка зрения состоит в том, что «коллекции» не будут сообщать вам в общих чертах, является ли объект изменчивым или неизменным. –