第二章python序列-元组

元组和列表的区别

列表属于可变序列,可以随意地修改列表中的元素值以及增加和删除列表中的元素;元组属于不可变序列,元组一旦定义就不允许通过任何方式更改。元组没有提供append(),extend()和insert()等方法,无法向元组中添加元素,同样元组中也没有remove()和pop()方法,也不支持对元组元素进行del操作,不能从元组中删除元素,只能使用del命令删除整个元组,元组支持切片操作,但只是通过切片操作来访问元组中的元素,不支持使用切片来修改元组中的元素值,也不支持使用切片操作作为元组增加或删除元素。

1.创建元组

(1)直接将一个元组对象赋给变量

>>> a=(1,2,3,4)
>>> a
(1, 2, 3, 4)
>>> a=('a','b','mpilgrim','z','example')
>>> a
('a', 'b', 'mpilgrim', 'z', 'example')
>>> a=()   #空元组

(2)用tuple()将其他类型(列表、range对象、字符串)转化为元组

>>> a=tuple(range(5))
>>> a
(0, 1, 2, 3, 4)
>>> print(tuple('asdfgh'))
('a', 's', 'd', 'f', 'g', 'h')
>>> a=tuple()  #空元组

2.访问

双向索引

(1)访问:通过索引

>>> a=(1,2,3,4)
>>> a[1]
2
>>> a[-2]
3

(2)通过for语句

>>> a
(1, 2, 3, 4)
>>> for data in a:
print(data)


1
2
3
4

3.元组元素的增加

(1)运算符 + 、 +=、 *

>>> a=(1,2)
>>> b=(3,4)
>>> a=a+b
>>> a
(1, 2, 3, 4)
>>> 
>>> a*3
(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)

4.元组元素的删除

(1) del命令

>>> a
(1, 2, 3, 4)
>>> del a
>>> a
Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    a
NameError: name 'a' is not defined

5.查找、 计数、成员判定

(1)查找:index()

>>> a=('h','e','l','l','o')
>>> a.index('e')
1
>>> a.index('a')
Traceback (most recent call last):
  File "<pyshell#88>", line 1, in <module>
    a.index('a')
ValueError: tuple.index(x): x not in tuple

(2)计数: count()

>>> a
('h', 'e', 'l', 'l', 'o')
>>> a.count('l')
2

(3)成员判定 in not in

>>> a
('h', 'e', 'l', 'l', 'o')
>>> 1 not in a
True
>>> 'h' not in a
False
>>> a
('h', 'e', 'l', 'l', 'o')
>>> 'h' in a
True
>>> 1in a
False

6.切片操作

>>> a
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a[::]
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a[::1]
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a[::-1]  #从左向右切,得到反向副本
(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
>>> a[::2]  #下标从0开始隔一个元素取一个元素
(0, 2, 4, 6, 8)
>>> a[1::2]  #下标从1开始隔一个元素取一个元素
(1, 3, 5, 7, 9)
>>> a[3:6]  #下标范围介于[3,6)元素
(3, 4, 5)
>>> a[3:6:1]
(3, 4, 5)
>>> a=('h','e','l','l','o')
>>> a[:3]
('h', 'e', 'l')

7.内置函数:sorted sum max min len

>>> a=(1,2,5,3,9,2,3,1,7)
>>> a
(1, 2, 5, 3, 9, 2, 3, 1, 7)
>>> sorted(a)
[1, 1, 2, 2, 3, 3, 5, 7, 9]
>>> sum(a)
33
>>> min(a)
1
>>> max(a)
9
>>> len(a)
9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值