热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3:序列_元组(常用基础知识)

详细如下:#元组:不可变列表,值不可修改,顺序不可变#元组有很多继承序列的内容如下:#序列索引从0开始,从最后起则索引为-1a(1,8,3,9,5,6)b(小一,

详细如下:

#元组:不可变列表,值不可修改,顺序不可变

#元组有很多继承序列的内容如下:
#序列索引从0开始,从最后起则索引为-1
a = (1,8,3,9,5,6)
b = ('小一','小二','小三')
c = ('Wang','baby','maya','Jiang','an')
aa = list(range(1,11,2))
print(aa)
print(a[2],a[-1],a[-3]) #输出第几项

#切片
print(a[::2])   # 默认从0到最后,每两个输出一个
print(a[1:4:2]) # 从第一个到第四个,每两个
print(a[:2])    # 前三个
print(a[:])     # 全部

print(a+b)      #序列相加
print(a*3)      #序列乘

#检查序列成员
print('小三' in b)  #in 在,not in 不在,结果为true
#序列长度、最大值、最小值;%d数字替代符,n\换行符
print("序列长度:%d\n序列最大值:%d\n序列最小值:%d" %(len(a),max(a),min(a)))

print(list(a))    #序列转为元组
print(str(a))     #序列转为字符串
print(sum(a))     #序列元素+
print(sorted(a))  #序列排序,a内原本顺序不会变
print(list(reversed(a))) #反向元素,a内原本顺序不会变
#序列索引和元素组合
print(list(enumerate(a)))
for i,element in enumerate(a):
    print(i,element)


# -------------------元组-------------------------
#除了对元素的顺序和内容不可添加、修改、删除外,元组有很多同列表一样的功能
#遍历元组
print('遍历元组')
for item in a:
    print(item)

#将a分两列输出
print('将a分两列输出')
for index,item in enumerate(a):
    if index%2 ==0:
        print(item,'\t\t',end='')  #\t:横向空出一个制表符的位置;end='':接下来输出的内容不要换行显示,即:index 0不换行,1换行,2不换行,3换行
    else:
        print(item)


#统计元素的数量a.count()
print(a.count(9))  #结果1
print(a.index(9))  #结果2,9首次出现的索引号

#元组的排序
print('sorted(c):\n',sorted(c))  #序列排序,c内原本顺序不会变
print('sorted(c,key=str.lower,reverse=True):\n',sorted(c,key=str.lower,reverse=True))  #倒序排序,c内原本顺序不会变
print(c)

#元组推导式:(用列表创建的表达式依然可成功创建,******注意:记得加上tuple()******)
#生成指定范围的数值元组
import random
d = tuple(random.randint(11,20)*2 for i in  range(10)) #random.randint(30,90)*2:元素表达式,i:针对后面range的循环变量
print(d)
#生成指定需求的元组,如d的5折
e = tuple(int(x*0.5) for x in d) #x*0.5:元素表达式;x:d中的元素
print(e)
#生成符合条件的元组,如f元组需要0.5的d元素,且0.5d元素依然为偶数
f = tuple(int(x*0.5) for x in d if int(x*0.5)%2==0) #x*0.5:元素表达式;x:d中的元素
print(f)
#创建数字元组
ff = tuple(range(1,13,3))
print(ff)


#二维元组
#使用推导式创建二维元组(用列表创建的表达式依然可成功创建)
g =tuple([random.randint(3,8) for j in range(3) ] for i in range(4))
print(g)
print(g[1][2])  #单个元素

#横版输出古诗,纵版输出古诗
str1 = "千山鸟飞绝"
str2 = "万径人踪灭"
str3 = "孤舟蓑笠翁"
str4 = "独钓寒江雪"
#list1 = tuple((str1),(str2),(str3),(str4))  # 如果这样写会提示:TypeError: tuple() takes at most 1 argument (4 given)
list1 = ((str1),(str2),(str3),(str4))        #正确写法,去掉tuple

print('------------横向古诗-方法1------------')
for itemh in list1:                 #每个子元组存在于元组中
    for item in itemh:              #每个字存在于子元组中
        if itemh.index(item) ==4:   #子元组中最后一个字换行打印,其余不换行打印
            print(item)
        else:
            print(item,end='')


print('------------横向古诗-方法2------------')

for i in range(4):                 #每个子元组存在于元组中
    for j in range(5):              #每个字存在于子元组中
        if j==4:   #子元组中最后一个字换行打印,其余不换行打印
            print(list1[i][j])
        else:
            print(list1[i][j],end='')


print('------------纵向古诗-方法1------------')
list2 = tuple(reversed(list1))   #倒叙古诗句子

for i in range(5):
    for j in range(4):
        if j ==3:
            print(list2[j][i])
        else:
            print(list2[j][i],end='')


#元组常需注意内容
#①如果只有一个元素,记得加逗号
print(type(('测试元组',)),'\t\t',type(('测试元组')))  #结果:          

#②元组内元素不可添加、修改、删除、更换顺序等,但可对元素重新赋值。
'''③元组推导式,同列表基本一致,需要注意的是记得加上tuple()函数,
即:f = tuple(int(x*0.5) for x in d if int(x*0.5)%2==0)******注意:记得加上tuple()'''

nubmer1 = (i for i in range(3))
print(type(nubmer1))                 #
nubmer = tuple(i for i in range(3))
print(type(nubmer))                  #
print(nubmer1.__next__())
print(nubmer1.__next__())
print(nubmer1.__next__())
print(tuple(nubmer1))                #.__next__():遍历生成器对象后,无法再对nubmer1转化为tuple,结果:()

#元组比列表的访问和处理速度快,元组可以作为字典中的键。

 


推荐阅读
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • Python 可视化 | Seaborn5 分钟入门 (六)——heatmap 热力图
    微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seabo ... [详细]
  • 一、死锁现象与递归锁进程也是有死锁的所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作 ... [详细]
  • 这篇文章给大家分享的是有关python3怎样中文转换编码的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。示例:处理 ... [详细]
  • python教程分享POC漏洞批量验证程序Python脚本编写
    编写目的批量验证poc,python代码练习。需求分析1、poc尽可能简单。2、多线程。3、联动fofa获取目标。4、随机请求头.实现过程脚本分为三个模块,获取poc及目标、多线程 ... [详细]
author-avatar
心忆泪痕
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有