当前位置: 首页 > wzjs >正文

wap网站乱码郑州企业免费建站

wap网站乱码,郑州企业免费建站,品牌网上做推广,卖游戏辅助的网站怎么建设文章目录 前言元组定义元组的运算索引操作切片操作连接和重复运算循环遍历元组中的元素成员运算内置函数运算 打包和解包操作交换变量的值 前言 在 Python 编程领域,元组(Tuple)是一类极为重要的数据结构。它属于不可变的序列类型&#xff0…

文章目录

    • 前言
    • 元组定义
    • 元组的运算
      • 索引操作
      • 切片操作
      • 连接和重复运算
      • 循环遍历元组中的元素
      • 成员运算
      • 内置函数运算
    • 打包和解包操作
    • 交换变量的值

前言

在 Python 编程领域,元组(Tuple)是一类极为重要的数据结构。它属于不可变的序列类型,通过圆括号 () 进行定义,其中元素可涵盖多种不同数据类型,元素间以逗号分隔。元组凭借其独特性质,在诸多编程场景中发挥着关键作用。

元组定义

元组中的元素依照特定顺序构建起序列,具备有序性这一显著特征,我们能够借助索引便捷地访问其中元素。与列表存在本质区别的是,元组属于不可变类型。这表明一旦定义元组类型的变量,其中元素便无法再进行修改,元素的值也固定不可变动。这种不可变性在保障数据稳定性与安全性方面具有重要意义。

元组的运算

索引操作

元组支持通过索引精准访问元素

t = (10, 20, 30, 40, 50)
print("元组t的第一个元素:", t[0]) # 输出:10,
print("元组t的最后一个元素:", t[-1]) # 输出: 50

正向索引从0开始,负向索引从-1开始,通过索引可以定位元组中的元素

切片操作

切片操作能够帮助我们获取元组的特定片段

t = (10, 20, 30, 40, 50)
print("获取索引1到3的元素:", t[1:3]) # 输出:(20,30)
print("从索引2开始到末尾的元素:", t[2:]) # 输出:(30,40,50)
print("获取整个元组:", t[:]) # 输出:(10,20,30,40,50)
print("步长为2获取元素:", t[::2]) # 输出:(10,30,50)

切片操作通过指定起始索引、结束索引(不包含该索引对应元素)以及步长,灵活截取元组片段。

连接和重复运算

元组之间可进行连接和重复运算

t1 = (1, 2, 3)
t2 = (4, 5, 6)print("连接元组t1和t2:", t1 + t2) # 输出:(1,2,3,4,5,6)
print("元组t1重复3次:", t1 * 3) # 输出:(1,2,3,1,2,3,1,2,3)

连接运算将两个元组合并为一个新元组,重复运算则按照指定次数复制元组元素

循环遍历元组中的元素

我们可使用for循环遍历元组中的元素。

t1 = (35, 12, 98)
for elem in t1:print(elem)

输出:
35
12
98
通过循环,可依次访问元组中的每个元素,便于对元组数据进行处理。

成员运算

利用innot in关键字可判断元素是否存在于元组中。

t1 = (1, 2, 3)
t2 = (4, 5, 6)
print("判断1是否在元组t1中:", 1 in t1) # 输出:True
print("判断7是否不在元组t2中:", 7 not in t2) # 输出:True

内置函数运算

t3 = (10, 20, 30, 40, 50)
print("元组t3的长度:", len(t3)) # 输出:5
print("元组t3中的最大值:", max(t3)) # 输出:50
print("元组t3中的最小值:", min(t3)) # 输出:10
print("元组t3中所有元素的和:", sum(t3)) # 输出:150

打包和解包操作

在Python中,存在打包和解包这两种特殊操作。当将多个逗号分割的值赋给一个变量是,这些值会自动打包成一个元组类型;而将一个元组赋值给多个变量时,元组会解包成多个值并分别赋给对应的变量

# 打包操作
a = 1, 10, 100
print(type(a))  # <class 'tuple'>
print(a)        # (1, 10, 100)
# 解包操作
i, j, k = a
print(i, j, k)  # 1 10 100

在解包过程中,若解包出来的元素个数与变量个数不匹配,会触发ValueError异常,错误信息分别为too many values to unpack(解包的值太多)或not enough values to unpack(解包的值不足)

a = 1, 10, 100, 1000
# i, j, k = a             # ValueError: too many values to unpack (expected 3)
# i, j, k, l, m, n = a    # ValueError: not enough values to unpack (expected 6, got 4)

针对变量个数少于元素个数的情况,可采用星号表达式解决。借助星号表达式,可使一个变量接收多个值。需注意两点:其一,经星号表达式修饰的变量会转变为一个列表,该列表可能包含 0 个或多个元素;其二,在解包语法中,星号表达式仅能出现一次。

a = 1, 10, 100, 1000
i, j, *k = a
print(i, j, k)        # 1 10 [100, 1000]
i, *j, k = a
print(i, j, k)        # 1 [10, 100] 1000
*i, j, k = a
print(i, j, k)        # [1, 10] 100 1000
*i, j = a
print(i, j)           # [1, 10, 100] 1000
i, *j = a
print(i, j)           # 1 [10, 100, 1000]
i, j, k, *l = a
print(i, j, k, l)     # 1 10 100 [1000]
i, j, k, l, *m = a
print(i, j, k, l, m)  # 1 10 100 1000 []

补充一下,解包语法对所有的序列都成立,这就表示列表、range函数构造的范围序列甚至字符串都可以使用解包语法

a, b, *c = range(1, 10)
print(a, b, c) # 输出:1 2 [3,4,5,6,7,8,9]
a, b, c = [1, 10, 100]
print(a, b, c) # 输出:1 10 100
a, *b, c = 'hello'
print(a, b, c) # 输出:h ['e','l','l'] o

交换变量的值

交换变量的值是写代码时经常用到的一个操作,但是通常交换两个变量的值都需要借助一个中间变量才能做到,如果不用中间变量就需要使用比较晦涩的位运算来实现。在 Python 中,交换两个变量ab的值只需要使用如下所示的代码。

a, b = b, a

同理,如果要将三个变量abc的值互换,即b的值赋给ac的值赋给ba的值赋给c,也可以如法炮制。

a, b, c = b, c, a

上面的操作并没有用到打包和解包语法,Python 的字节码指令中有ROT_TWOROT_THREE这样的指令可以直接实现这个操作,效率是非常高的。但是如果有多于三个变量的值要依次互换,这个时候是没有直接可用的字节码指令的,需要通过打包解包的方式来完成变量之间值的交换。


文章转载自:

http://iVJfaVxL.ckcjq.cn
http://7tzymmAp.ckcjq.cn
http://845eRX6g.ckcjq.cn
http://wg5RmF05.ckcjq.cn
http://75NVfYUj.ckcjq.cn
http://J5DxyfW2.ckcjq.cn
http://VXwfbNgY.ckcjq.cn
http://Oyjd3DNb.ckcjq.cn
http://LOEyetj5.ckcjq.cn
http://RDjtoo5R.ckcjq.cn
http://V5IyV4ke.ckcjq.cn
http://foOL7R4g.ckcjq.cn
http://g6GF3BRX.ckcjq.cn
http://3ZlQw6sD.ckcjq.cn
http://mpqgpVne.ckcjq.cn
http://7QQX1tmk.ckcjq.cn
http://WrY5BSsh.ckcjq.cn
http://q5k8KU52.ckcjq.cn
http://srfGfAjp.ckcjq.cn
http://x6kjJJ1C.ckcjq.cn
http://IQMgUImp.ckcjq.cn
http://u4yUwZej.ckcjq.cn
http://bKliezDp.ckcjq.cn
http://cgKGR6ns.ckcjq.cn
http://Q89jle14.ckcjq.cn
http://LwhmeiKf.ckcjq.cn
http://Yg6var78.ckcjq.cn
http://xRqBE4Ms.ckcjq.cn
http://RRcpTE9d.ckcjq.cn
http://VPE1e0ne.ckcjq.cn
http://www.dtcms.com/wzjs/689086.html

相关文章:

  • 国美在线网站建设费用中企动力初期做的网站
  • 新型门窗网站模板兰州市最新通知
  • 网站开发预算报表海口哪里做网站
  • 配送网站开发网站策划总结
  • 怎样自学开网店搜狗排名优化工具
  • 南京建设网站首页中国和城乡建设部网站首页
  • 昆明企业网站制作把货卖到国外有哪些平台
  • 博罗网站开发阿里云 有企业 网站吗
  • 提升网站转化率行政机关单位网站建设
  • 王晴儿网站建设精准扶贫电商网站建设计划书
  • 花生壳可以用来做网站吗高端品牌鞋子有哪些
  • 事业单位网站建设计划wordpress上传ftp密码
  • 合肥做网站可以吗网站建设费用选择网络专业
  • 自己弄网站需要多少钱designspiration官网
  • 在网站建设工作会议上讲话常熟有哪些网站建设公司
  • 工业和信息化部五系网站建设运营一个网站一年费用
  • 建立网站的目标公司网站的留言板怎么做
  • 用php做的博客网站有哪些寄生虫网站怎么做
  • 鄂尔多斯网站制作 建设推广静态网站怎么做有效页
  • 怎么向网站添加型号查询功能汕头seo优化
  • 建设地情网站的作用网站开发需求调研
  • 网站封面制作各学院二级网站建设通报
  • 3d效果图设计制作软件网站建设公司十年乐云seo
  • wordpress多种设备网页生成石家庄网站优化招聘
  • 找小网站的关键词网页设计与网站建设毕业设计
  • 苏州网站建设技术做自己的网站挣钱
  • 百度如何收录网站军事新闻2023
  • 创建一个网站需要做哪些准备wordpress 找不到网页
  • 哪个商城网站建设好中国建设银行上海分行信息网站
  • weui做购物网站的案例分别是什么