《0基础》轻松学会Python——第七讲__<2>数据容器

<2>、数据容器_tuple

一、元组tuple( ),

        有序列表,和list非常类似,但是tuple一旦初始化就不能修改,比如定义一个保存了三个名字的tuple元组: classmates = ('James', 'Kobe', 'Polo') ,注意:tuple元组的定义使用一对小括号。

        由于元组是不可变的,因此元组对象没有append()、insert()和del这样的方法,实际上,tuple的使用可以使得代码更安全,防止错误赋值导致重要对象的改变。

二、元组可以通过索引来查找

        例如:

tuple_a = (1, 2, 3, 4, 5, 6, 'e123', "daqwe", [1, 2])
print(tuple_a[3])

或者

tuple_a = (1, 2, 3, 4, 5, 6, 'e123', "daqwe", [1, 2])
print(tuple_a.index(1))
print(tuple_a.count(5))

另外,一元组需要在那一个元素后加一个英文逗号,否则输出格式为字符串

# 一元组
tuple_1 = ("a",)
print(tuple_1, type(tuple_1))

三、字典类型dict( )        

        dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。字典的创建使用大括号 {} 包含键值对,并用冒号 : 分隔键和值,形成 键:值 对,其中键必须是唯一的,但值可以重复,可以取任何数据类型,如字符串,数字,元组,但必须是不可变的,其键值对是无序的。

        例如:要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:

names = ['Michael', 'Bob', 'Tracy']

scores = [95, 75, 85]

        给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长 如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢

        定义一个dict字典:

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

        通过key可以获取value:d['Bob'] 返回75。

四、字典dict()的常用方法:

        1、get(): 通过key获取value,还可以指定当key不存在时返回一个默认值,

dict_1={'a':1,'b':2,'c':22,'d':999}
print(dict_1.get('a'))
print(dict_1.get('nume'))
print(dict_1.get('nume','没有这个键'))

       

         2、pop:通过key删除kv键值对

dict_1={'a':1,'b':2,'c':22,'d':999}
print(dict_1.pop('a'))
print(dict_1)

       

        3、keys:返回所有的key

dict_1={'a':1,'b':2,'c':22,'d':999}
print(dict_1.keys())

        

        4、values:返回所有的value

dict_1={'a':1,'b':2,'c':22,'d':999}
print(dict_1.values())

        

        5、items:将每个KV键值对转换成二元数组并返回

dict_1={'a':1,'b':2,'c':22,'d':999}
print(dict_1.items())

        6、clear:清空字典

        7、通过in可以判断某个dict中是不是包含某个key

dict_1={'a':1,'b':2,'c':22,'d':999}
print(('a' in dict_1))

        结果输出:True

        

五、set( )集合

        1、set和dict类似,也是一组key的集合,但不存储value,

        2、由于key不能重复,所以,在set中,没有重复的key。

        3、set集合一般用于去重,或者是数学集合运算,如交、并、差等。

        4、创建一个set:可以使用花括号{}或者是set()方法进行创建

        5、注意:创建空集合,必须使用 set() ,而不是{},因为{}表示创建一个空的字典

        

        例如:

set_1={1,2,4,54,1,2,3,4,99,88,52,99,99,99}
print(set_1)

        其输出结果为:{1, 2, 99, 3, 4, 52, 54, 88}

六、集合的常见方法

        1、add:向set集合中添加元素,若存在则去重,不存在则添加

set_1={123,456,66,88,888}
print(set_1)
set_1.add(99)
set_1.add(999)
set_1.add(999)
print(set_1)

结果如下:

       

        2、remove:从set集合中移除元素,若不存在则报错

set_1={123,456,66,88,888}
set_1.remove(123)
print(set_1)

输出结果如图:

        3、discard:同remove,也能移除元素,但当其不存在时,不会报错

        4、pop:随机移除一个元素,因为set集合是无序的,用法同上

        5、intersection:返回集合的交集

set_1={123,456,66,88,888}
set_2={123,456,78,46,111}
print(set_1.intersection(set_2))

其打印结果为:{456, 123}

        6、union:返回集合的并集

set_1={123,456,66,88,888}
set_2={123,456,78,46,111}
print(set_1.union(set_2))

其打印结果为:{66, 456, 88, 46, 78, 111, 888, 123}

        7、difference:返回集合的差集

set_1={123,456,66,88,888}
set_2={123,456,78,46,111}
print(set_1.difference(set_2))

其打印结果为:{888, 66, 88}

七、通过for...in循环可以遍历数据容器

        1、遍历list列表:

        2、遍历tuple元组

        4、遍历set集合:

        5、遍历dict字典

        <1>直接遍历

dict_1={'a':1,'b':2,'c':22,'d':999}
for key in dict_1: #此处key为代称,也可使用i等
    print(key)

        其打印结果为:

        

        <2>遍历keys

dict_1={'a':1,'b':2,'c':22,'d':999}
for a in dict_1.keys():
    print(a)

        其结果为:

        

        <3>遍历values:

dict_1={'a':1,'b':2,'c':22,'d':999}
for a in dict_1.values():
    print(a)

        其结果为:  

         

        <4>遍历items:

dict_1={'a':1,'b':2,'c':22,'d':999}
for a in dict_1.items():
    print(a)

            其结果为:       

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜就多练_0828

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值