python 基础数据类型-字典dict

Posted Follow U Heart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 基础数据类型-字典dict相关的知识,希望对你有一定的参考价值。

如何定义字典

字典也是一种集合,同时也是无序的。

与集合相同,用{},与集合不同,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

 

 

以上是关于python 基础数据类型-字典dict的主要内容,如果未能解决你的问题,请参考以下文章

python基础之字典dict

Python基础:基本数据类型(dict)

Python基础知识:字典dict

python基础数据类型之字典dict和集合set及其他(for,enumerate,range)。

Python三种基础数据类型:列表list,元祖tuple和字典dict

Python 基础数据类型之dict