标签:line string last col stdin tuple span ror 覆盖
如何定义字典
字典也是一种集合,同时也是无序的。
与集合相同,用{},与集合不同,dict是key value格式的。
一般字典的定义
>>> type({"a":1,"b":2,"c":3}) <class ‘dict‘>
定义一个空字典
>>> type({}) <class ‘dict‘>
字典的key 不能重复,相同的key 不同的value,后面的新value 覆盖前面的旧value
>>> {"a":1,"b":2,"c":3,"a":1} {‘a‘: 1, ‘b‘: 2, ‘c‘: 3} >>> >>> {"a":1,"b":2,"c":3,"a":2} {‘a‘: 2, ‘b‘: 2, ‘c‘: 3} >>> >>> {"a":1,"b":2,"c":3,"d":1} {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 1}
字典的key可以是str 也可以是 int 。但是key 必须是不可变的类型,比如int string ,tuple,但是list这种就是可变的类型(
1、可变不可变之后搞清楚
2、为啥tuple 是不可变的,list 是可变的呢?)
>>> {3:1,2:2,1:3,1:0.5}[3]
1
int 的key和string 的key 是2个key
>>> {3:1,2:2,1:3,"3":0.5}["3"] 0.5 >>> {3:1,2:2,1:3,"3":0.5}[3] 1
>>> {(1,3):1,2:2,1:3,"3":0.5}["3"] 0.5 >>> {[1,3]:1,2:2,1:3,"3":0.5}["3"] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: ‘list‘
为啥tuple 是不可变的,list 是可变的呢?
如何去访问字典?不是序列,所以肯定也不能用切片,下标的方式访问,再说了,如果都可以用切片,下标访问的话,那字典的key 意义又何在?
用key 去访问字典
>>> {"a":1,"b":2,"c":3,"a":0.5}["a"] 0.5
访问不存在的,报出语法错误
>>> {"a":1,"b":2,"c":3,"a":0.5}["3"] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: ‘3‘
标签:line string last col stdin tuple span ror 覆盖
原文地址:https://www.cnblogs.com/ansonwan/p/13401589.html