前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python元组与字典

Python元组与字典

作者头像
py3study
发布2020-01-10 11:23:48
8530
发布2020-01-10 11:23:48
举报
文章被收录于专栏:python3python3

python字典

概念:字典是另一种可变容器类型,且可存储任意类型对象,如其他容器类型。

字典由键和对应值成对组成。字典也被称作关联数组或哈希表。理解好一一对应的

关系很重要

1. 掌握字典类型

a) 字典的特点

无序: 通过键实现元素存取,故无序

可变:可以通过键进行改变值

异构:支持多种数据类型

嵌套:可以在键值对中的值部分出现字典

b) 定义字典:

ii. 方法一:{key1:value1,key2:value2,...}

iii. 方法二:dict()内置函数:指定键值

例:d2=dict(name="jerry",age="45",gender="m")

iv. 关键点:

键与值用冒号“:”分开;

项与项用逗号“,”分开;

字典中的键必须是唯一的,而值可以不唯一

   实例:

代码语言:javascript
复制
dict = {'Alice': '16', ' MadKing ': '17', 'Cecil': '18'}
代码语言:javascript
复制
dict1 = { 'abc': 456 }dict2 = { 'abc': 123, 98.6: 37 } 嵌套定义

访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};    print "dict['Name']: ", dict['Name']; print "dict['Age']: ", dict['Age'];

如果用字典里没有的键访问数据,会输出错误如下:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};    print "dict['Alice']: ", dict['Alice'];

以上实例输出结果:

12345

dict['Zara']: Traceback (most recent call last):   File "test.py", line 4, in <module>     print "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'


修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

12345678910

#coding:utf8    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};    dict['Age'] = 8; # update existing entry dict['School'] = "DPS School"; # Add new entry       print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];

以上实例输出结果:

12

dict['Age']:  8 dict['School']:  DPS School

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

#coding:utf8    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};    del dict['Name']; # 删除键是'Name'的条目 dict.clear();     # 清空词典所有条目 del dict ;        # 删除词典    print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];

但这会引发一个异常,因为用del后字典不再存在:

12345

dict['Age']: Traceback (most recent call last):   File "test.py", line 8, in <module>     print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable

注意:删除元素尽量用字典内置方法,不需要直接del,后面会讨论。

字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

12345

#coding:utf8    dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};    print "dict['Name']: ", dict['Name'];

以上实例输出结果:

1

dict['Name']:  Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:

12345

#coding:utf8    dict = {['Name']: 'Zara', 'Age': 7};    print "dict['Name']: ", dict['Name'];

以上实例输出结果:

1234

Traceback (most recent call last):   File "test.py", line 3, in <module>     dict = {['Name']: 'Zara', 'Age': 7}; TypeError: list objects are unhashable

掌握字典相关方法

1.1 添加元素:dict1[key] = value

例如:

wKioL1jkaPzj0RKcAAAYjT2WEXE220.png
wKioL1jkaPzj0RKcAAAYjT2WEXE220.png
wKiom1jkaRbQmrVoAAAJmEk0XHw057.png
wKiom1jkaRbQmrVoAAAJmEk0XHw057.png

1.2 items():变量解包:即将字典转化为键、值作为元组的列表

例如:

wKioL1jkaSmzKdrZAAAR7EAKYLg367.png
wKioL1jkaSmzKdrZAAAR7EAKYLg367.png
wKiom1jkaTaSJVNcAAAKSVTkHHk939.png
wKiom1jkaTaSJVNcAAAKSVTkHHk939.png
代码语言:javascript
复制
dict = {'Name': 'Zara', 'Age': 7}
 
print "Value : %s" %  dict.items()
 
Value : [('Age', 7), ('Name', 'Zara')]

            1.3 keys();键列表

例如:

wKioL1jkaVuyj4WOAAAV704FLTI780.png-wh_50
wKioL1jkaVuyj4WOAAAV704FLTI780.png-wh_50
wKiom1jkaYHCumO9AAAYIwLzEDo184.png
wKiom1jkaYHCumO9AAAYIwLzEDo184.png

1.4 values():值列表

例如:

wKiom1jkaaXASY-zAAAk7vMTdq4320.png
wKiom1jkaaXASY-zAAAk7vMTdq4320.png
wKioL1jkab6QFGspAAAXsoeIXK0167.png-wh_50
wKioL1jkab6QFGspAAAXsoeIXK0167.png-wh_50

1.5 has_key():判断是否存在某个键,返回结果true 或false

例如:

wKioL1jkafrQNLV-AAAR7EAKYLg774.png
wKioL1jkafrQNLV-AAAR7EAKYLg774.png
wKioL1jkageAFrE8AAAKSVTkHHk385.png
wKioL1jkageAFrE8AAAKSVTkHHk385.png

1.6 len():取得字典中键值对个数

例如:

wKioL1jkai7Bet5cAAAV704FLTI866.png
wKioL1jkai7Bet5cAAAV704FLTI866.png

1.7         update():在原字典上合并字典,键相同时会被覆盖。

        例如:

wKioL1jkaj_yUSWKAAAk7vMTdq4732.png
wKioL1jkaj_yUSWKAAAk7vMTdq4732.png

1.8         get():取得某个键对应的值

例如:

wKiom1jkalihylIxAAAQrDjzS4A640.png-wh_50
wKiom1jkalihylIxAAAQrDjzS4A640.png-wh_50

1.9         pop():弹出指定键对应的值

wKiom1jkamXwzCXmAAAXw-PoZ_U048.png
wKiom1jkamXwzCXmAAAXw-PoZ_U048.png

1.10         popitem():随机弹出键值对

wKiom1jkanmgD7jiAAAWMgFW628741.png
wKiom1jkanmgD7jiAAAWMgFW628741.png

1.11         clear():清除所有元素

例如:

wKiom1jkaobjjqc9AAAWeexbPIs886.png
wKiom1jkaobjjqc9AAAWeexbPIs886.png

2. 掌握字典的遍历:

wKiom1jkaqqCSq6JAACKDFdbJGg908.png
wKiom1jkaqqCSq6JAACKDFdbJGg908.png
代码语言:javascript
复制
概念:Python的元组与列表类似,也是一种容器类型,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。

Python的元组与列表类似,不同之处在于元组的元素不能修改。

特点:支持异构;

  支持嵌套;

  不可变

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

如下实例:

123

tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";

创建空元组

tup1 =();

元组中只包含一个元素时,需要在元素后面添加逗号

tup1 =(50,);

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。


访问元组

元组可以使用下标索引来访问元组中的值,如下实例:

tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 );   print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5]

以上实例输出结果:

tup1[0]:  physics tup2[1:5]:  [2, 3, 4, 5]


修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

tup1 = (12, 34.56); tup2 = ('abc', 'xyz');   # 以下修改元组元素操作是非法的。 # tup1[0] = 100;   # 创建一个新的元组 tup3 = tup1 + tup2; print tup3;

以上实例输出结果:

(12, 34.56, 'abc', 'xyz')

删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

tup = ('physics', 'chemistry', 1997, 2000);   print tup; del tup; print "After deleting tup : " print tup;

以上实例元组被删除后,输出变量会有异常信息,输出如下所示:

123456

('physics', 'chemistry', 1997, 2000) After deleting tup : Traceback (most recent call last):   File "test.py", line 9, in <module>     print tup; NameError: name 'tup' is not defined


元组运算符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

Python 表达式

结果

描述

len((1, 2, 3))

3

计算元素个数

(1, 2, 3) + (4, 5, 6)

(1, 2, 3, 4, 5, 6)

连接

['Hi!'] * 4

('Hi!', 'Hi!', 'Hi!', 'Hi!')

复制

3 in (1, 2, 3)

True

元素是否存在

for x in (1, 2, 3): print x,

1 2 3

迭代


元组索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

元组:

L =('spam', 'Spam', 'SPAM!')

Python 表达式

结果

描述

L[2]

'SPAM!'

读取第三个元素

L[-2]

'Spam'

反向读取;读取倒数第二个元素

L[1:]

['Spam', 'SPAM!']

截取元素


无关闭分隔符

任意对象 以逗号隔开,默认为元组,如下实例:

print 'abc', -4.24e93, 18+6.6j, 'xyz'; x, y = 1, 2; print "Value of x , y : ", x,y;

元组内置函数

Python元组包含了以下内置函数

序号

方法及描述

1

len(t)  计算元组元素个数。

2

max(t) 返回元组中元素最大值。

3

min(t) 返回元组中元素最小值。

4

tuple(li) 将列表转换为元组

5

index():返回指定元素第一次出现的索引位置count():指定元素出现的次数例如:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档