天池龙珠训练营Python_Task2: 数据结构_(2)元组

简介

介绍Pthon中的基本数据结构及其数据存储与使用。

本部分包括以下内容:

  1. 列表
  2. 元组
  3. 字符串
  4. 字典
  5. 集合
  6. 序列

1.元组

  • 元组与列表类似,是一个不可变的序列。
  • 用( )括号进行创建,一经创建就不能对其进行修改,类似于字符串
  • 使用整数索引 indexing 和切片slicing获取元组中元素

2.元组创建与访问

例1:使用( )来创建一个空元组.

my_tuple = () # 创建了一个空元组
print(my_tuple,type(my_tuple)) # <class 'tuple'>

例2: 创建了一有5个元素的元组,创建不为空的元组,( )可以省略

my_tuple = (1,2,3,4,5) 

#创建不为空的元组,( )可以省略.
my_tuple = 10,20,30,40
my_tuple = 40,
 print(my_tuple , type(my_tuple))  #(40,) <class 'tuple'>

例3: 元组一经创建,不能修改.下面代码出错

my_tuple=(1,2,3,4,5)
my_tuple[3]=10   #TypeError: 'tuple' object does not support item assignment

—> 16 my_tuple[3]=10 #TypeError: ‘tuple’ object does not support item assignment

例4:创建中的一些问题

  • 1.元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
my_tuple = (3) # 创建了一个空元组,实际 (3)被作为一个带括号的整数
print(my_tuple,type(my_tuple)) #  3   <class 'int'>

my_tuple = (3,) # 3后面加上逗号,说明是创建元组
print(my_tuple,type(my_tuple)) # <class 'tuple'>

#例如
print(8*(8))  #64,就是数8*8的计算
print(8*(8),)  #  (6, 6, 6, 6, 6, 6, 6, 6),将(6)重复了8次

例5:创建二维元组。

#直接赋值创建二维元组
x = (1, 10.31, 'python'), ('data', 11)
print(x) # ((1, 10.31, 'python'), ('data', 11))
print(x[0])# (1, 10.31, 'python')  
print(x[0][0], x[0][1], x[0][2]) # 1 10.31 python
print(x[0][0:2])  # (1, 10.31)

3.更新与删除一个元组

元组一经建立,元素的元素值不能更改,但是元素所指对象的值可以改变的。

t1=(1,2,3,[4,5,6]) 建立 元组t1,有4个元素(4行*1列)
print(t1 ) #  (1, 2, 3, [4, 5, 6])

t[3][0]=9 # t[3] 指向的是列表对象[ 4,5 ,6]。 这里t3的值没有改变,还是这个列表对象的id,但是列表中的一个元素值改了。
t1[3][0] = 9
print(t1)  # (1, 2, 3, [9, 5, 6])

#同样理解下例。week元组中
week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week)     # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')

4.元组相关的操作符

  • 等号操作符:==
  • 连接操作符: +
  • 重复操作符: +
  • 成员关系运算符in ,not in
  • 元组重复拼接:*
#例:
t1=('Python','Ali')
t2=('Ali','Python');
t3=('Python','Ali');
print(t1==t2 )    # False
print(t1==t3)     # True  只有成员、成员位置都完相同,返回True。

t4=('campus')

ts=t1+t2 
print(ts)  #首尾相接

tm=t1*3                     # ('Python', 'Ali', 'Python', 'Ali', 'Python', 'Ali') ,重复3次首尾相接
print('Python' in tm )  #True
print('Python' not in tm )  #False

5.内置方法

元组的大小和内容都不可更改,针对于元组的操作只有count 与index 两种方法

t='Python','Jave','network','Python'
print(t.count('Python'))  #2 出现的次数
print(t.index('Python')) #0  第一次出现的指标值

6.元组解构

元组的解包(解构):就是将元组当中每一个元素都赋值给一个变量
例1:解压一维元组

my_tuple = 10 , 20 , 30 , 40
a,b,c,d=my_tuple
print(a,b,c,d)  #  10 20 30 40

例2:解压二维元组

t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d)  # 1 10.31  OK python

例3: 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
也可以在变量前边添加通配符[*], 下列中rest获得元组中剩余的对象

t = (1, 10.31, 'OK', 'python')
a,b,*rest=t
print (a,b,rest)  #1 10.31 ['OK', 'python']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值