python 基础数据类型-字典dict

2021-04-06 04:25

阅读:601

标签: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 "", line 1, in 
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 "", line 1, in 
KeyError: 3

 

 

python 基础数据类型-字典dict

标签:line   string   last   col   stdin   tuple   span   ror   覆盖   

原文地址:https://www.cnblogs.com/ansonwan/p/13401589.html


评论


亲,登录后才可以留言!