前言
本文记录了对于Python的数据类型中元祖(Tuple)和字典(Dict)的一些认识,以及部分内置方法的介绍。下面话不多说,来看看详细的介绍吧。
元祖 Tuple
特点:元祖内的数据不可变
一个元素的定义:T = (1,)
> T=(1,) > type(T) <type 'tuple'>
特殊的元祖:”可变”的元祖
> 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可变,将会导致数据混乱。
> D = {1:3,'vimiix':88} > type(D) <type 'dict'>
> D={[1,2,3]:100} Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> D={[1,2,3]:100} TypeError: unhashable type: 'list' (这里提示list是不能被Hash计算的数据类型,因为list是可变的数据类型) >
由此错误可以看出,字典的键只能使用不可变的对象(元祖是可以的),但是对于字典的值没有此要求
键值对用冒号‘:'分割,每个对之间用逗号‘,'分开,所有这些用花括号‘{}'包含起来
字典中的键值对是没有顺序的,故不可以用索引访问,只可以通过键取得所对应的值
拓展:如果定义的过程中,出现相同的键,最后存储的时候回保留最后的一个键值对)
> D= {1:2,1:3} > D {1: 3}
创建与访问
第一种创建方式:直接通过花括号包含键值对来创建
第二种创建方式:利用内置函数dict()
来创建,注意!dict()
括号内只能有一个参数,要把所有的键值对括起来
(1)
> D =dict((1,2),(3,4),(5,6)) Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> D =dict((1,2),(3,4),(5,6)) TypeError: dict expected at most 1 arguments, got 3 > D =dict(((1,2),(3,4),(5,6))) > D {1: 2, 3: 4, 5: 6}
(2)还可以指定关键字参数
> D=dict(vimiix = 'VIMIIX') > D {'vimiix': 'VIMIIX'}
这里的小写‘vimiix'不可以加单引号,加了会报错!
(3)dict的内置方法 .fromkeys 有两个参数
> D = dict.fromkeys((1,'vimiix'),('common','value')) > D {1: ('common', 'value'), 'vimiix': ('common', 'value')} >
实际的生产过程中,都是使用字典生成式来创建,根据现有的数据来生成对应的数据,有数据才有意义。
字典生成式栗子:
> L1 = [1,2,3] > L2 = ['a','v','vimiix'] > D={a:b for a in L1 for b in L2} > D {1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}
此处只是一个生成式的栗子,但并不是理想答案,待学习如何生成一一对应的键值对
字典的内置方法:
get()
:
获取键所对应的值,如果未找到返回None,找到返回对应的值
pop(key)
:
弹出key对应的值,默认最后一个
popitem()
:
随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()
方法效率很高。
update()
:
更新或者新增一个键值对(有则改之无则加勉)
> D.update({'newitem':'update'}) > D {'newitem': 'update', 1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]