python元祖组成字典_简单谈谈Python中的元祖(Tuple)和字典(Dict)

前言

本文记录了对于Python的数据类型中元祖(Tuple)和字典(Dict)的一些认识,以及部分内置方法的介绍。下面话不多说,来看看详细的介绍吧。

元祖 Tuple

特点:元祖内的数据不可变

一个元素的定义:T = (1,)

1

2

3

>>> T=(1,)

>>>type(T)

特殊的元祖:”可变”的元祖

1

2

3

4

>>> T=(1,2,3,[1,2,3])

>>> T[3][2]= 'vimiix'

>>> T

(1,2,3, [1,2,'vimiix'])

看上去元祖发生了变化,但真正变化的是[1,2,3]这个列表内的元素发生了变化,但是这个列表在T这个元祖中的内存地址是没有改变的。

结论:实际是元祖的元素包含了可变的元素,但是元祖中元素的内存地址没有变,所以所谓的元祖不可变是指元素指向的内存地址是不变

字典 Dict

特点:

1、字典是Python中唯一的映射类型

2、字典的键(KEY)必须是不可变的对象—>因为字典在计算机中是通过Hash算法存储的,Hash的特点是由KEY来计算存储的,如果KEY可变,将会导致数据混乱。

1

2

3

>>> D= {1:3,'vimiix':88}

>>>type(D)

1

2

3

4

5

6

>>> D={[1,2,3]:100}

Traceback (most recent call last):

File "", line1,in

D={[1,2,3]:100}

TypeError: unhashabletype:'list' (这里提示list是不能被Hash计算的数据类型,因为list是可变的数据类型)

>>>

由此错误可以看出,字典的键只能使用不可变的对象(元祖是可以的),但是对于字典的值没有此要求

键值对用冒号‘:'分割,每个对之间用逗号‘,'分开,所有这些用花括号‘{}'包含起来

字典中的键值对是没有顺序的,故不可以用索引访问,只可以通过键取得所对应的值

拓展:如果定义的过程中,出现相同的键,最后存储的时候回保留最后的一个键值对)

1

2

3

>>> D= {1:2,1:3}

>>> D

{1:3}

创建与访问

第一种创建方式:直接通过花括号包含键值对来创建

第二种创建方式:利用内置函数dict()来创建,注意!dict()括号内只能有一个参数,要把所有的键值对括起来

(1)

1

2

3

4

5

6

7

8

>>> D=dict((1,2),(3,4),(5,6))

Traceback (most recent call last):

File "", line1,in

D=dict((1,2),(3,4),(5,6))

TypeError:dict expected at most1 arguments, got3

>>> D=dict(((1,2),(3,4),(5,6)))

>>> D

{1:2,3:4,5:6}

(2)还可以指定关键字参数

1

2

3

>>> D=dict(vimiix= 'VIMIIX')

>>> D

{'vimiix':'VIMIIX'}

这里的小写‘vimiix'不可以加单引号,加了会报错!

(3)dict的内置方法 .fromkeys 有两个参数

1

2

3

4

>>> D= dict.fromkeys((1,'vimiix'),('common','value'))

>>> D

{1: ('common','value'),'vimiix': ('common','value')}

>>>

实际的生产过程中,都是使用字典生成式来创建,根据现有的数据来生成对应的数据,有数据才有意义。

字典生成式栗子:

1

2

3

4

5

>>> L1= [1,2,3]

>>> L2= ['a','v','vimiix']

>>> D={a:bfor ain L1for bin L2}

>>> D

{1:'vimiix',2:'vimiix',3:'vimiix'}

此处只是一个生成式的栗子,但并不是理想答案,待学习如何生成一一对应的键值对

字典的内置方法:

get():

获取键所对应的值,如果未找到返回None,找到返回对应的值

pop(key) :

弹出key对应的值,默认最后一个

popitem() :

随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高。

update() :

更新或者新增一个键值对(有则改之无则加勉)

1

2

3

>>> D.update({'newitem':'update'})

>>> D

{'newitem':'update',1:'vimiix',2:'vimiix',3:'vimiix'}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.vimiix.com/2017/03/31/Python-Introduction-of-tuple-and-dict.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值