012 Python初学笔记--初识元组(元组的创建、访问、更新、删除)

 

1.创建一个元组:

①与创建列表不同,创建元组用的是‘()’,创建一个空元组直接用一对小括号表示

②元组的标志性符号是‘逗号’,创建的元组中只有一个元素时,要在元素后面加一个‘逗号’

>>> #创建元组
>>> tuple1=(1,2,3,4,5)
>>> tuple1
(1, 2, 3, 4, 5)

>>> #创建空元组
>>> tuple2=()
>>> tuple2
()
>>> #创建只有一个元素的元组
>>> tuple3=(1)
>>> tuple3
1
>>> tuple4=(1,)
>>> tuple4
(1,)
>>> tuple5=1,
>>> tuple5
(1,)
>>> type(tuple3);type(tuple4)
<class 'int'>
<class 'tuple'>
>>> #逗号对与元组的重要性
>>> tuple1=1,2,3,4,5,6
>>> tuple1
(1, 2, 3, 4, 5, 6)
>>> 8*(8)
64
>>> 8*(8,)  # *在此充当重复操作符
(8, 8, 8, 8, 8, 8, 8, 8)

2.访问元组中的元素

>>> tuple1=(11,12,13,14,15,16)
>>> #访问元组中的某个元素(编号从0开始)
>>> tuple1[2]
13

>>> #访问元组中的部分连续元素
>>> tuple1[2:]
(13, 14, 15, 16)
>>> tuple1[:5]
(11, 12, 13, 14, 15)
>>> tuple1[1:3]  #访问编号范围[1,3)的元素
(12, 13)

3.更新一个元组

①元组中的元素不允许被直接修改

②要想修改元组可以使用拼接的方式

>>> #元组中的元素不允许被直接修改
>>> tuple1=(1,2,3,4,5,6,7)
>>> tuple[2]=8
Traceback (most recent call last):
  File "<pyshell#46>", line 1, in <module>
    tuple[2]=8
TypeError: 'type' object does not support item assignment

>>> #在元组中插入元素
>>> tuple1[:3]
(1, 2, 3)
>>> tuple1[3:]
(4, 5, 6, 7)
>>> tuple1=tuple1[:3]+('Swan',)+tuple1[3:]   #使用拼接的方法插入元素
>>> tuple1
(1, 2, 3, 'Swan', 4, 5, 6, 7)

4.删除元组中的元素和删除元组

①由于元组中的元素是不允许被直接修改的,所以删除元组中的元素可以使用拼接的方法

②删除整个元组

>>> #删除部分元素
>>> tuple1=(0,1,2,3,4,5,6)
>>> tuple1=tuple1[:2]+tuple1[3:]
>>> tuple1
(0, 1, 3, 4, 5, 6)

>>> #删除元组
>>> del tuple1
>>> tuple1
Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    tuple1
NameError: name 'tuple1' is not defined

5.与元组相关的操作符:

拼接:+,‘+’号两端的类型必须一致

重复操作符:*;

关系操作符:>,>=,<,<=,==

逻辑操作符:and , or

成员操作符:in,not in

 

  • 拓展:

1.列表和元组的不同:

列表:是一个大仓库,可以随时往里面添加和删除任何类型的元素。当我们需要频繁的修改数据时,需要使用列表。

元组:是一个封闭的列表,一旦定义,不可改变(不能添加、删除和修改)。当我们希望内容不能被轻易改写时,我们使用元组。

一般情况下多使用列表,只有特殊情况才选择使用元组。

2. x, y, z = 1, 2, 3 请问x, y, z是元组吗?

>>> x,y,z=1,2,3
>>> type(x);type(y);type(z)
<class 'int'>
<class 'int'>
<class 'int'>
>>> h=x,y,z
>>> type(h)
<class 'tuple'>

3.列表中有列表推导,那么元组中有元组推导吗?

>>> list1=[x**2 for x in range(10)]
>>> list1
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> type(list1)
<class 'list'>
>>> tuple1=(x**2 for x in range(10))
>>> tuple1
<generator object <genexpr> at 0x000001ABBC6F8318>
>>> type(tuple1)
<class 'generator'>

python3是没有“元组推导”的,但是>>> tuple1=(x**2 for x in range(10)) 没有出错,是因为误打误撞得到了一个生成器:

>>> tuple1.__next__()
0
>>> tuple1.__next__()
1
>>> tuple1.__next__()
4
>>> tuple1.__next__()
9
>>> tuple1.__next__()
16
>>> tuple1.__next__()
25
>>> tuple1.__next__()
36
>>> tuple1.__next__()
49
>>> tuple1.__next__()
64
>>> tuple1.__next__()
81

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值