Python3 数据结构基础详解4(元组和序列,集合,字典,遍历技巧)

元组和序列

元组由若干逗号分隔的值组成,例如:

t = 12,13,14
print(type(t))
print(t)
print(t[0])

运行结果:
在这里插入图片描述
如你所见,元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可能有或没有括号, 不过括号通常是必须的(如果元组是更大的表达式的一部分)。


集合

集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典,下一节我们会介绍这个数据结构。

以下是一个简单的演示:

#创建空集合需要用Set()
S = set()
print(type(S))
#集合消除重复数据
S = {1,1,1,1,2,3,4,5}
print(S)

运行结果:
在这里插入图片描述
集合也支持推导式:

#集合推导式
S2 = {x for x in S if x > 2}
print(S2)

运行结果:
在这里插入图片描述


字典

另一个非常有用的 Python 内建数据类型是字典。
序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。
理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。
一对大括号创建一个空的字典:{}。
这是一个字典运用的简单例子:

# 这是一个空字典
mydict = {}
print(type(mydict))
print(mydict)

# 往字典中增加键值对
mydict['z'] = '1'
mydict['f'] = '2'
mydict['q'] = '3'
print(mydict)

# 修改某个键值对
mydict['z'] = '5'
print(mydict)

# 删除某个键值对
del mydict['z']
print(mydict)

# 输出字典中所有键以列表的形式
print(list(mydict.keys()))

运行结果:
在这里插入图片描述
构造函数 dict() 直接从键值对元组列表中构建字典。如果有固定的模式,列表推导式指定特定的键值对:

# 构造函数构造字典
S3 = dict([(1,'z'),(2,'f'),(3,'q')])
print(S3)

运行结果:
在这里插入图片描述
此外,字典推导可以用来创建任意键和值的表达式词典:

# 字典推导式应用
S4 = {x:x**3 for x in (2,3,4,5)}
print(S4)

运行结果:
在这里插入图片描述

如果关键字只是简单的字符串,使用关键字参数指定键值对有时候更方便:

# 键值对创建字典
S5 = dict(z = 1,f = 2,q = 3)
print(S5)

运行结果:
在这里插入图片描述


遍历技巧

在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:

# 遍历字典1
mydict = {'q':'zfq','h':'zzh'}
for k,v in mydict.items():
    print(k,'对应:',v)

运行结果:
在这里插入图片描述
在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:

# 遍历序列1
mylist = ['zzf','zzd','zza']
for i,v in enumerate(mylist):
    print(i,'对应:',v)

运行结果:
在这里插入图片描述
同时遍历两个或更多的序列,可以使用 zip() 组合:

# 同时遍历两个或更多的序列,可以使用 zip() 组合:
mylist1 = ['zfq','zfw','zfe']
mylist2 = ['zzh','zza','zzq']
for a,b in zip(mylist1,mylist2):
   print(a,'对应:',b)

运行结果:
在这里插入图片描述
要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数:

# 要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数  
mylist3 = [1,2,3,4,5,6,7,8,9]
for i in reversed(mylist3):
     print(i)

运行结果:
在这里插入图片描述
要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值:

# 要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值:
mylist4 = [3,1,2,3,11,3,6,7,5,9]
for i in sorted(mylist4):
    print(i)

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学习者-小刈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值