Python 元组与字典


一、元组

1、元组介绍(掌握)

元组是一种内容不可变的序列结构,我们可以简单的理解为它是内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表在用法是差不多的

2、元组创建(掌握)

1、创建一个元组,只要把逗号分隔的不同的数据元素使用小括号括起来即可。
注意:元组只有一个元素时,记得加上逗号,比如tu=(1,)。否则元组创建失败

tu=(1,2,3,4,5)
print(tu)
print(type(tu))
"""
输出:
(1,2,3,4,5)
<class 'tuple'>
"""

除此之外,我们还可以直接通过tuple()这个类来进行创建元组。

tu=tuple("12345")#这里要注意,输入的参数必须是可迭代的类型,比如说字符串,不能输入纯数字
print(tu)
print(type(tu))
"""
输出:
('1','2','3','4','5')
<class 'tuple'>
"""

3、元组(tuple)与列表相同的操作

1、使用 方括号加下标 访问元素
a =(1,2,3,4,5)
print(a[2])
"""
输出:
3
"""
2、切片
a =(1,2,3,4,5)
print(a[1:4])
"""
输出:
(2,3)
"""

(3)、tuple.count() / tuple.index()
tuple.count()是计算相同元素个数的函数,
tuple.index()是返回一个元素的索引位置,如果有多个相同的优先返回找到的第一个
(4)、python内置函数:reversed(),sorted()
这两个函数,reversed()是将元组的元素进行逆转,sorted()是将元组元素进行排序
(5)、加法及乘法

3、元组(tuple)中不允许的操作

1、不允许修改 、删除或者新增元素。
2、不允许删除某个元素(但可以删除整个元组) 实际上,元组没有任何会对内部元素发生修改动作的方法。元组就没有 remove,append,pop 等方法
但是比如说,a=(1,2,3,4,5,[6,7]),元组里面的元素有列表的这种情况
我们可以对元组的列表当中的元素进行更改,比如说我可以把列表当中的6改成9
a[5][0]=9
说明元组的不可修改只限于元组的一级元素,如果是a=(1,2,3,4,5,(6,7))里面的二级元组就不可改

3、元组(tuple) 元组与列表之间的转换(掌握)
元素不需要改变的时候,我们就用元组
元素需要修改的时候,我们就用列表
tuple(iterable)
list(iterable)

a=(1,2,3,4,5,6)
print(list(a))
"""
输出:
[1,2,3,4,5,6]
"""
b=[1,2,3,4,5,6]
print(tuple(b))
"""
输出:
(1,2,3,4,5,6)
"""

二、字典

1、 字典介绍

Python的字典数据类型是基于hash散列算法实现的,采用键值对 (key:value) 的形 式,根据 key 的值计算 value 的地址,具有非常快的查取和插入速度。 字典是一种可变对象 ,所以支持修改、插入、删除等操作。

2、 字典创建

dict={}
person={ key1 : value1, key2 : value2}
这里有两个注意的点:
(1)、在 Python3.6 开始,字典对象会保持键值插入时的顺序,并且其包含的元素个数不限,值的类型也可以是其它任何数据类型。
(2)、字典的 key 必须是 不可变的对象,例如整数、字符串、bytes 和元组,使用最多的还是字符串。 列表、字典、集合等就不可以作为 key,因为key必须是不可变数据类型,但是可以作为value。同时,同一个字典内的 key 必须是唯一的。

person={"name":"Whistle","age":23,"high":170.12}
print(person)
print(type(person))
"""
输出:
{'name': 'Whistle', 'age': 23, 'high': 170.12}
<class 'dict'>
"""

还有就是用键值对的方式进行创建

person=dict(name="Whistle",age=23,high=170.12)
print(person)
print(type(person))
"""
输出:
{'name': 'Whistle', 'age': 23, 'high': 170.12}
<class 'dict'>
"""

映射关系创建字典

person=dict([("name","Whistle"),("age",23),("high",170.12)])
print(person)
print(type(person))
"""
输出:
{'name': 'Whistle', 'age': 23, 'high': 170.12}
<class 'dict'>
"""

这三种创建字典的方式都是等价的
我们再来认识一下这种方法
map(func, *iterables): 将 iterables 里面的元素逐个传到 func 里面做处理
比如说列表a=list(‘12345’),我们将这个列表内的字符元素一个一个强转为整数类型的元素再输出,map的作用,一种映射将里面的元素拿到函数里面处理。

a=list('12345')
b=map(int(),a)
print(list(b))
"""
输出:
[1, 2, 3, 4, 5]
"""

我们再来认识一下这种方法
zip(iter1 [,iter2 […]]): 将iter1 iter2 中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 将可迭代对象一一对应的元素打包成元组然后返回,例如:
我们把li1=[‘name’, ‘age’,‘high’] 与 li2=[‘Whistle’, 18,170.12] 组合成键值对的字典

li1=['name', 'age','high']
li2=['Whistle', 18,170.12]
b=list(zip(li1,li2))
print(b)
person=dict(b)
print(person)
"""
输出:
[('name', 'Whistle'), ('age', 18), ('high', 170.12)]
{'name': 'Whistle', 'age': 18, 'high': 170.12}
"""

3、字典的操作

1、访问字典
字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的 说法。但是,与 list 类似,字典采用把相应的键 放入方括号内获取 对应值的方式取值。 如:dic[exit_key] ,如果 key 值不存在时,程序会怎么样呢?当然是报错了

 person={"name":"Whistle","age":23,"high":170.12}
 print(person["age"])
"""
输出:
23
"""

2、字典的增加与修改
增加 就是往字典 插入新的键值对

person={"name":"Whistle","age":23,"high":170.12}
person["sex"]="male"
print(person)
"""
输出:
{'name': 'Whistle', 'age': 23, 'high': 170.12, 'sex': 'male'}
"""

修改 就是给 原有的键赋予新的值。由于一个 key 只能对应一个值,所以, 多次对一个 key 赋值,后面的值会把前面的值覆盖掉。

person={"name":"Whistle","age":23,"high":170.12}
person["name"]="WhistleLee"
print(person)
"""
输出:
{'name': 'WhistleLee', 'age': 23, 'high': 170.12}
"""

3、一系列删除
删除字典元素:del dic[exit_key] 或 dic.pop(exit_key)
person={“name”:“Whistle”,“age”:23,“high”:170.12}
del person[“age”]
person.pop(“age”)
删除整个字典:del person
清空整个字典:person.clear()
4、字典常见操作
person={“name”:“Whistle”,“age”:23,“high”:170.12}
person.get(k[,d]) --> 返回指定键的值。如果键不在字典中,则返回None,用person[]的方式获取会报错
person.items() --> 以列表返回可遍历的(键, 值) 元组对
person.keys() --> 以列表返回字典所有的键
person.values() --> 以列表返回字典所有的值
用下面的例子就熟悉了

person={"name":"Whistle","age":23,"high":170.12}
print(person.get("name"))# --> 返回指定键的值,如果值不在字典中
print(person.items()) #--> 以列表返回可遍历的(,) 元组对
print(person.keys()) #--> 以列表返回字典所有的键
print(person.values())# --> 以列表返回字典所有的值
"""
输出:
Whistle
dict_items([('name', 'Whistle'), ('age', 23), ('high', 170.12)])
dict_keys(['name', 'age', 'high'])
dict_values(['Whistle', 23, 170.12])
"""
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值