元组,列表,字符串是序列类型! 字典是映射类型!
字典的标志性符号是大括号,字典由多个键及其对应的值共同构成,每一对键值组合称为一项。访问字典只需访问键值即可。
在字典中,为一个不存在的key值赋值会怎样?– 会自动创建对应的键(key)并添加相应的值(value)进去。
Python 对键和值有没有类型限制? – Python 对键的要求相对要严格一些, 要求它们必须是可哈希(Hash)的对象,不能是可变类型(包括变量,列表,字典本身等),但是Python对值是没有任何限制的。附上字典的存储原理你知道Python的字典是如何存储的吗?
2.get :如果我们在字典中索引一个不存在的键,Python会报错,现在我们使用get,它是一种更宽松的方式去访问字典。
现在我们访问一个不存在的键。 dict1.get(32) print(dict1.get(32)) None 如果你想要当访问的值不存在时返回一个具体的值,可以自己设定。 dict1.get(32,'没有') '没有' 但是当它是有值时,还会返回原有的值。 dict1.get(31,'没有') 赞3 . clear : 当我们想要清空一个字典时,我们使用clear方法。dict1.clear()
4 . copy : 拷贝一个字典。
5 . pop,popitem : pop是给定键弹出对应的值,而popitem是弹出一个项,注意,这个项并不一定是第一项,而是随机的。因为在字典里是没有顺序的。它是按照某种优先级排列的。
6 .setdefault : setdefoult 方法和 get 方法有点类似, 区别是如果 setdefault 找不到对应的键时会自动添加。
a = {3:'three', 4:'four'} a.setdefault('小仙女') print(a) {'小仙女':None, 3:'three', 4:'four'} 我们也可以给一个值进去。 a.setdefault(5,'five') {'小仙女':None, 3:'three', 4:'four', 5:'five'}7 . update : update是利用一个映射关系或一个字典去更新一个字典。
b = {'小仙女':'我'} a.update(b) {'小仙女':'我', 3:'three', 4:'four', 5:'five'}如果希望创建的函数是不变的,请使用 frozenset().
集合几乎所有的作用就是确保里边包含的元素的唯一性,集合内不可能存在两个相同的元素!!
num2 = {1,2,3,4,5,5,4,3,2} num2 = {1,2,3,4,5} 集合是无序的,不要试图去索引某个值,会报错 >>> num_set = set([1, 2, 3, 4, 5]) >>> num_set[0] >会报错如何确定一个集合里有多少元素? 用len()!
请问 set1 = {[1,2]} 和 set1 = set([1,2]) 结果一样吗?
不一样!!前者会报错!!后者是一个集合。 >>> set1 = {[1, 2]} Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> set1 = {[1, 2]} TypeError: unhashable type: 'list'从报错信息上我们可以看到,‘列表不是可哈希的类型’,没错,列表是可变的,怎么可以是可哈希的呢~~等等,我们忽然想起来字典的存储方式也是哈希的呀!!
再想一想觉得很有道理呀!利用哈希函数计算,相同的元素得到的哈希值(存放地址)是相同的,所以在集合中所有相同的元素都会覆盖掉,因此有了集合的唯一性。
接着想就更有道理啦,通过哈希函数计算出的地址不可能是按顺序排放的,所以集合才强调是无序的!!!
举两个集合的内置方法。add 和 remove
>>> num1.add(6) >>> num1 {0, 1, 2, 3, 4, 5, 6} >>> num1.remove(6) >>> num1 {0, 1, 2, 3, 4, 5}还有更多详细的内置方法请看链接集合类型内置方法总结 再次要特别感谢小甲鱼老师,看着他的教程,通俗易懂。