列表回顾练习题

  1. 创建一个列表,名为nums,使列表包含1~9共9个元素,从小到大排列。
  2. 将列表元素从大到小排列并输出(用list.reverse())。
  3. 将当前列表index为5的数字改为字符’python’,并输出。
  4. 创建一个新列表,名为dlc,列表包含任意3个元素,将改新列表与旧列表合并(使用’+’,或者list.append()),然后输出合并后的列表的最后6个元素。

元组

  1. 元组与列表相似,不同之处在于元组的元素不能修改。
  2. 元组使用小括号 ( ),列表使用方括号 [ ]。
  3. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
  4. 由于元组的不可更改(稳定性),常用于传递函数的参数。

Python for 家毅:Tuple - 图1

元组的创建

与列表的创建类似,注意使用小括号(圆括号)

  1. tup1 = ('Google', 'Runoob', 1997, 2000)
  2. tup2 = (1, 2, 3, 4, 5 )
  3. tup3 = "a", "b", "c", "d" # 不需要括号也可以

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

  1. tup1 = (1,) //这种情况下,tup1会被声明成一个元组,包含一个元素,该元素是数字1
  2. tup1 = (1) //这种情况下,tup1会被声明成一个变量,该变量类型为integer,值为1

元素的访问

Python for 家毅:Tuple - 图2
元素的访问与列表类似,通过index来访问特定位置上的值

  1. tup1 = ('Google', 'Runoob', 1997, 2000)
  2. tup2 = (1, 2, 3, 4, 5, 6, 7 )
  3. print ("tup1[0]: ", tup1[0])
  4. print ("tup2[1:5]: ", tup2[1:5])

输出如下:

tup1[0]:  Google
tup2[1:5]:  (2, 3, 4, 5)

元组的修改

元组中的所有元素均不能被修改!!!
这是元组与列表的最大差别

元组的拼合(使用‘+’)

与列表的拼合类似

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2
print (tup3)

输出如下:

(12, 34.56, 'abc', 'xyz')

元组的运算符

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
(‘Hi!’,) * 4 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代

以上是不是也与上一章学过的列表很像呢?

元组和列表的解包

该方法适用于元组和列表

tup1 = (7,8,9)
list1 = [10,11,12]
a, b, c = tup1
d, e, f = list1
print(a,b,c)
print(d,e,f)

输出如下

7 8 9
10 11 12

元组的常用方法(函数)

方法及描述 实例
len(tuple)
计算元组元素个数。
>>> tuple1 = (‘Google’, ‘Runoob’, ‘Taobao’)

len(tuple1) 3 | | max(tuple)
返回元组中元素最大值。 | >>> tuple2 = (‘5’, ‘4’, ‘8’) max(tuple2) ‘8’ | | min(tuple)
返回元组中元素最小值。 | >>> tuple2 = (‘5’, ‘4’, ‘8’) min(tuple2) ‘4’ | | tuple(iterable)
将列表/字符串转换为元组。 | >>> list1= [‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’] tuple1=tuple(list1) tuple1 (‘Google’, ‘Taobao’, ‘Runoob’, ‘Baidu’) | | tuple.count(obj)
计算某个元素出现的次数 | >>> tup1 = (2,2,3,4,5)
>>> tup1.count(2)
2
>>> | | tuple.index(obj)
返回某一元素的index | >>> tup1 = (2,2,3,4,5)
>>> tup1.index(2)
0
>>> |

以上函数对列表和元组均适用。

上周我们学过列表的常用函数,我们知道元组和列表在一定程度上具有相似性,但是元组内的元素是不可更改的。那么,列表适用的函数中哪些也适用于元组,哪些不可用于元组?(以下是上周学过的列表函数)
image.png
由于元组是不可更改的,因此不存在 tuple.remove(), tuple.insert(), tuple.append() ~~等等函数

练习一下

  1. 创建一个列表,名为nums,使列表包含1~4共4个元素,从小到大排列。
  2. 将该列表转化成元组(tup1 = tuple(nums)),并输出。
  3. 输出该元组的长度(元素个数)。(print(len(tup1))
  4. 解包该元组(a,b,c,d = tup1),并输出。
  5. 创建一个新的元组,使得该元组包含字符串“python”中的每个字母(tup2 = tuple("python")
  6. 创建一个新的元组,包含字符串“python”除首字母外的所有字母(tup3 = tuple("python"``[1:]``)
  7. 如果我要“反转”前述的元组tup1,想想可以如何办到?(转换成列表,reverse,载转换成元组)