Python元组与字典

python字典

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

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

关系很重要

1. 掌握字典类型

a) 字典的特点

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

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

异构:支持多种数据类型

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

b) 定义字典:

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

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

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

iv. 关键点:

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

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

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

实例:

dict = {‘Alice‘: ‘16‘, ‘ MadKing ‘: ‘17‘, ‘Cecil‘: ‘18‘}
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‘];

以上实例输出结果:


1

2

3

4

5

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


修改字典

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


1

2

3

4

5

6

7

8

9

10

#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‘];

以上实例输出结果:


1

2

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后字典不再存在:


1

2

3

4

5

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)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:


1

2

3

4

5

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

以上实例输出结果:


1

dict[‘Name‘]:  Manni

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


1

2

3

4

5

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

以上实例输出结果:


1

2

3

4

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

例如:

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

例如:

dict = {‘Name‘: ‘Zara‘, ‘Age‘: 7}
 
print "Value : %s" %  dict.items()
 
Value : [(‘Age‘, 7), (‘Name‘, ‘Zara‘)]

1.3 keys();键列表

例如:

1.4 values():值列表

例如:

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

例如:

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

例如:

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

例如:

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

例如:

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

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

1.11         clear():清除所有元素

例如:

2. 掌握字典的遍历:

概念:Python的元组与列表类似,也是一种容器类型,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。

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

特点:支持异构;

支持嵌套;

不可变

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

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

如下实例:


1

2

3

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;

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


1

2

3

4

5

6

(‘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():指定元素出现的次数

例如:

时间: 2024-12-14 06:56:57

Python元组与字典的相关文章

python 元组和字典中元素作为函数调用参数传递

模式1.  def test1(*args): test3(*args) def test2(**kargs): test3(**kargs) def test3(a, b): print(a,b) test1(1,2) test2(a=1,b=2) 模式2.  def test4(a= ()): test6(*a) def test5(b = {}): test6(**b) def test6(a, b): print(a,b) test4((1, 2)) test5({'a':1,'b':2

python系列(四)python元组与字典

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 本博文目录: 一.元组 | 二.字典 | 三.字典的使用方法 前言:列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要.然而,有时候你需要创建一些列不可修改的元素,元组就可以满足你这样的需求.Python将不能修改的值称为不可变的,而不可变的列表就被称为元组. 正文部分:

python——元组和字典学习笔记

1.count返回值的次数 list=[2,2,2,3,3,3,3,4,4,4] a={} for i in list: if list.count(i)>1: a[i]=list.count(i) print(a) 将具体的某个数的在列表中的次数返回 list=[2,2,2,3,3,3,3,4,4,4] print(list) print(list.count(2)) 2.set 将list中不重复的所有值遍历出来 list=[2,2,2,3,3,3,3,4,4,4] print(list)

python 元组 列表 字典基础分析:

一.元组 1.元组的定义,创建 tuple = ('apple','banana','grange','orange','anguo','c++') 注:该元组由6个元素组成,元素之间用逗号隔开. tuple = ('apple',) 注:一个元素后面跟一个逗号 2.元组的访问 (1)索引是一对方括号中的数字,索引也称"下标" tuple = ('apple','banana','grange','orange','anguo','c++') print(tuple[1]) print

Python 元组、字典、集合操作总结

元组 a=('a',) a=('a','b') 特点 有序 不可变,不可以修改元组的值,无法为元组增加或者删除元素 元组的创建 a=('a',) a=('a','b') tuple('abcd') 转化为元组 tuple(i for i in range(10)) 生成器推导式转化为元组,生成器推导式产生的生成器对象只能遍历一次 g=( i for i in range(10)) next(g) 单步迭代生成器对象 for i in g: print(i,end='') 直接迭代生成器对象 a=

python元组与字典:

#定义元组(),元组与列表类似但元素不可以更改a=(1,2,3,4,5,6,"a","b","c","d","e","f")print(a) #定义字典{key:value},用key快速查找valueb={"name":"小明","age":18,"hobby":"象棋"}#key不可重

python 元组 字符串 字典 列表嵌套练习题1

最近学习做的习题,直接复制过来 缩进就乱掉了,所以直接以图片方式上传,题目和答案一起

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

2.python基础之—列表,元组,字典,集合,字符串的使用方法

一.关于python序列的简介. python里面的序列大部分都可以执行,索引,切片,加,乘,检查长度,以及检查某个成员是否存在,甚至还可以找出这个序列中最小的元素和最大的元素,并且序列都是可迭代的. 解释下个人理解的迭代,迭代(iteration),序列中的迭代就是对序列中的每个元素重复执行某些操作/ 具体的迭代方式后面会说到. 下面就说说python序列的共有特点. 1.索引 一个序列中,所有的元素都有自己的编号,这个编号是从0开始的,这个编号就是所谓的索引,这些元素可以通过索引来依次访问.