>>> ['frozenset() 对象是不可变的']
['frozenset() 对象是不可变的']
>>> t = frozenset('FishC')
>>> t
frozenset({'C', 'i', 's', 'F', 'h'})
>>> s = set('FishC')
>>> s
{'C', 'i', 's', 'F', 'h'}
>>> s.update([1,1],'23')
>>> s
{1, 'C', '3', 'i', '2', 's', 'F', 'h'}
>>> t.update([1,1],'23')
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
t.update([1,1],'23')
AttributeError: 'frozenset' object has no attribute 'update'
>>> s.intersection_update('FishC')
>>> s
{'C', 'i', 's', 'F', 'h'}
>>> s.difference_update('Php','Python')
>>> s
{'C', 'i', 's', 'F'}
>>> s.symmetric_difference_update('Python')
>>> s
{'t', 'C', 'P', 'h', 'i', 'n', 'y', 's', 'F', 'o'}
>>> ['上节课讲到的 没有update, 他们只是返回计算结果,而加上update 之后,是对集合进行更新']
['上节课讲到的 没有update, 他们只是返回计算结果,而加上update 之后,是对集合进行更新']
>>> ['s.update() 即是 s.unionupdate(),即是合并集合']
['s.update() 即是 s.unionupdate(),即是合并集合']
>>> s.add('45')
>>> s
{'t', 'C', '45', 'P', 'h', 'i', 'n', 'y', 's', 'F', 'o'}
>>> ['add() 方法与 update() 方法不同,前者是将整个字符串当作一个元素插入集合,而后者是将字符串 分开呈一个个元素后再插入集合']
['add() 方法与 update() 方法不同,前者是将整个字符串当作一个元素插入集合,而后者是将字符串 分开呈一个个元素后再插入集合']
>>> s.remove('晚买')
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
s.remove('晚买')
KeyError: '晚买'
>>> s.discard('晚买')
>>> s
{'t', 'C', '45', 'P', 'h', 'i', 'n', 'y', 's', 'F', 'o'}
>>> s.pop()
't'
>>> s.pop()
'C'
>>> s.pop()
'45'
>>> s.pop()
'P'
>>> s
{'h', 'i', 'n', 'y', 's', 'F', 'o'}
>>> s.clear()
>>> s
set()
>>> ['集合元素的删除,可以使用 remove() 方法和 discard() 方法,两者的区别是,如果要删除的元素原集合中没有,那么前者就会报错,而后者会静默处理; pop() 方法是随机剔除集合中的一个元素; clear() 则是将一个集合变为一个空集合']
['集合元素的删除,可以使用 remove() 方法和 discard() 方法,两者的区别是,如果要删除的元素原集合中没有,那么前者就会报错,而后者会静默处理; pop() 方法是随机剔除集合中的一个元素; clear() 则是将一个集合变为一个空集合']
>>> ['通过 hash() 函数可以获得一个对象的 哈希 值']
['通过 hash() 函数可以获得一个对象的 哈希 值']
>>> hash(1)
1
>>> hash(1.0)
1
>>> hash(1.001)
2305843009213441
>>> ['整数的 哈希 值是整数,两个相同值的 哈希 值是相同的']
['整数的 哈希 值是整数,两个相同值的 哈希 值是相同的']
>>> ['Python 中 大多不可变的对象都是 可哈希 的,而可变的对象都是 不可哈希 的,可哈希 就是其哈希值是不变的']
['Python 中 大多不可变的对象都是 可哈希 的,而可变的对象都是 不可哈希 的,可哈希 就是其哈希值是不变的']
>>> hash('FishC')
-5249203814098794668
>>> hash([1,2,3])
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
hash([1,2,3])
TypeError: unhashable type: 'list'
>>> ['如上所示:字符串是不可变的,其有哈希值,而列表是可变的,因此其没有哈希值']
['如上所示:字符串是不可变的,其有哈希值,而列表是可变的,因此其没有哈希值']
>>> hash((1,2,3))
529344067295497451
>>> {'Python':520,'FishC':1314}
{'Python': 520, 'FishC': 1314}
>>> {[1,2,3]:'FishC'}
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
{[1,2,3]:'FishC'}
TypeError: unhashable type: 'list'
>>> ['可哈希的对象才可以作为 键,因此上述不可哈希的列表不能作为字典的键']
['可哈希的对象才可以作为 键,因此上述不可哈希的列表不能作为字典的键']
>>> {'Python','FishC',520,1314}
{520, 1314, 'FishC', 'Python'}
>>> {'Python','FishC',520,1314,[1,2,3]}
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
{'Python','FishC',520,1314,[1,2,3]}
TypeError: unhashable type: 'list'
>>> x = {1,2,3}
>>> y = {x,4,5}
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
y = {x,4,5}
TypeError: unhashable type: 'set'
>>> ['上述嵌套集合中 x 是可变的,因此不能作为 键']
['上述嵌套集合中 x 是可变的,因此不能作为 键']
>>> x = frozenset(x)
>>> y = {x,4,5}
>>> y
{frozenset({1, 2, 3}), 4, 5}
>>>