八、六大数据类型之元组

六大数据类型之元组

一、语法

  • 用小括号 元素直接逗号隔开。元组有序不可变(元素的位置和元素的数据类型不能变)。
  • c=('s') 并不是元组 因为('s')其实是一个表达式。当元组只有一个元素的时候。一定要加个逗号
  • 当元祖的元素数据类型是可变的时候。元组的值是可变的。
a = ()
b = (1,)
c = ('s')
d = (a,b,c,[(),{},'test'])
e = [1,2,3]
f = (1,e)
e.append(4)


print(type(a),a)
print(type(b),b)
print(type(c),c)
print(type(d),d)
print(type(f),f)


打印结果:
<class 'tuple'> ()
<class 'tuple'> (1,)
<class 'str'> s
<class 'tuple'> ((), (1,), 's', [(), {}, 'test'])
<class 'tuple'> (1, [1, 2, 3, 4])

二、元组的基本操作

元组因为每一个元素的位置和数据类型不可变。所以只能查询。和列表一样使用索引和分片。


a = ('m','n','x','y','x','x')

print(a[0])  # 查询元组第一个元素
print(a[-1]) # 查询元组最后一个元素
print(a[1:3])  # 分片查询元组部分元素 从下标1开始查询下标3结束遵守左闭右开原则
print(a.index('n')) # 查询元组中某个值第一个匹配项的索引位置
print(a.count('x')) # 统计元素x在元组中出现的次数


打印结果:

m
x
('n', 'x')
1
3

三、其他常用的通用函数

元组的元素是同一种数据类型才能使用最值和排序函数

a = ('m','n','xxx','y','xxx')

print(len(a))
print(max(a))
print(min(a))

打印结果:

5
y
m

四、运算符的使用

 算术运算符。

  • 元组之间可以相加。元组和数字可以相乘。元组和所有数据类型不能相减相除
a = (1, 2)
b = ('4', '5')

print(a + b)
print(a * 2)

打印结果:

(1, 2, '4', '5')
(1, 2, 1, 2)

比较运算符

  • 2个元组值比较是从列表的首项开始比较的。如果第一个元素相等在比较第二个元素。要注意的是需要比较的元素数据类型必须一致。否则不能比较。
a = (3, 2, 3)
b = (4, '5')
c = (2,)

print(a > b)
print(a >= c)
print(b != c)


打印结果:

False
True
True

赋值运算符

  • 元组只能使用简单的加法赋值运算符, 以及元组和数字之间的乘法赋值运算符。
a = (1, 2, 3)

b = a
print(b)

a += b
print(a)

a *= 2
print(a)


打印结果如下:

(1, 2, 3)
(1, 2, 3, 1, 2, 3)
(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)

逻辑运算符

  • 当元组等于空元组时。该元组为False。
a = (1,2)
b = ()

print(a and b)
print(a or b)
print(not b)

print(b and a)
print(b or a)
print(not a)

打印结果:

()
(1, 2)
True
()
(1, 2)
False

成员运算符

  • 比较某个对象是否存在列表中
a = 1
b = '33'
c = (1, 2, '3')
d = [1, 2]

print(a in c)
print(b in c)
print(d not in c)


打印结果:

True
False
True

身份运算符

  • 判断2个元组指向的是否是同一个对象
  • 当分别创建2个元素一致的元组。他们指向的不是同一块内存区域。
  • 当先创建一个元组,然后赋值给另外变量。这个时候2个元组指向的内存区域都是一个。当元组中含有可变类型的数据时。修改原元祖的可变元素值。赋值的元素值也会相应的改变
a, b = (1, 2, 3), (1, 2, 3)
print(a is b, id(a), id(b))

c = (1, 2, [11])
d = c
print(c is d, id(c), id(d))

c[2].append(22)
print(c is d)
print(id(c), c)
print(id(d), d)


打印结果:

False 4440391968 4564932144
True 4576781224 4576781224
True
4576781224 (1, 2, [11, 22])
4576781224 (1, 2, [11, 22])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bug来袭~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值