Python学习05:元组的定义和用法

笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,感谢支持!

目录

元组的定义和用法

一.元组的定义

1.1 元组的语法

1.2 序列、列表和元组小结

二.元组的用法

2.1 将序列转换成元组

2.2 索引

2.3 切片

2.4 相加

2.5 相乘

2.6 成员资格检查

2.7 初识for循环


元组的定义和用法

本篇主要讲Python元组的定义和用法。说到元组就要绑定和列表的讨论:

列表非常适合用于存储在程序运行期间可能变化的数据集。列表可以修改。然而有时候需要创建一系列不可修改的元素,元组可以满足这种需求。

Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

一.元组的定义

和列表一样,元组也是序列->传送门。唯一的差别在于元组是不能修改的(当然字符串也是不能修改的)。

1.1 元组的语法

元组的语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组:

#元组
tuple_number = 1,2,3
print(tuple_number)
print(type(tuple_number))
(1, 2, 3)
<class 'tuple'>

可以看到元组还可以用圆括号扩起,两种都是元组的表现方式:

#元组
tuple_number = (4,5,6)
print(tuple_number)
print(type(tuple_number))
(4, 5, 6)
<class 'tuple'>

所以元组看起来犹如列表,但是是使用圆括号而不是方括号来标识。

这里我们尝试下创建一个元组,并试着修改元组里第一个元素的值:

#元组
tuple_fruits = ('apple','pear','peach','jujube')
print(tuple_fruits)
tuple_fruits[0] = 'banana'
Traceback (most recent call last):
  File "G:/helloWorld/python/pycharm/NingMeng/demo377.py", line 6, in <module>
    tuple_fruits[0] = 'banana'
TypeError: 'tuple' object does not support item assignment

报错打印:元组类型对象不支持修改,尝试修改元组的操作是被禁止的,不能给元组的元素赋值。

所以所有的元素赋值和切片赋值对于元组(字符串也是)都是非法的。

1.2 序列、列表和元组小结

根据Python学习04和05讲的内容,这里提前做一下关于序列、列表和元组的小结:

序列:一种数据结构元素带编号,编号从0开始。

列表、字符串和元组都是与序列。

列表可变的,元组和字符串不可变的。

要访问序列的一部分,可以使用切片操作(提供两个制定切片起始和结束位置的索引)。

修改列表可以给元素赋值,也可以使用赋值语句给切片赋值。

确定特定的值是否包含在序列中,可以使用运算符in。

二.元组的用法

既然元组也属于序列,那么序列的操作对于元组也是支持的。

2.1 将序列转换成元组

将序列转换为元组需要用到函数tuple()。这里以字符串和列表为例。

将字符串转换为元组:

str_names = '张三、李四、王二、小明'
print(type(tuple(str_names)))
print(tuple(str_names))
张三、李四、王二、小明
<class 'tuple'>
('张', '三', '、', '李', '四', '、', '王', '二', '、', '小', '明')

将列表转换为元组:

list_names = ['Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina']
print(list_names)
print(type(tuple(list_names)))
print(tuple(list_names))
['Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina']
<class 'tuple'>
('Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina')

2.2 索引

#元组
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
print(tuple_fruits)
print(tuple_fruits[2])
print(tuple_fruits[-3])
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi')
peach
hami melon

2.3 切片

#元组
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
print(tuple_fruits)
print(tuple_fruits[1:6])
print(tuple_fruits[::-1])
print(tuple_fruits[2:8:3])
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi')
('pear', 'peach', 'jujube', 'banana', 'cherry')
('litchi', 'watermelon', 'hami melon', 'cherry', 'banana', 'jujube', 'peach', 'pear', 'apple')
('peach', 'cherry')

2.4 相加

#元组
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
print(tuple_fruits + tuple_names)
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi', 'Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina')

2.5 相乘

tuple_numbers = (1,2,3,4,5)
print(tuple_numbers * 5)
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

2.6 成员资格检查

tuple_numbers = (1,2,3,4,5)
print(4 in tuple_numbers)
True
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
print('jack' in tuple_names)
print('KOBE' in tuple_names)
False
False

2.7 初识for循环

这里不过多讨论for循环,直接拿来使用,在下一节学习中再具体研究for、while循环。

循环可以对列表或元组的每个元素都采取一个或一系列相同的措施,从而高效的处理任何长度的列表、元组。

遍历元组中所有的值:

tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
for name in tuple_names:
    print(name)
Jack
Rose
Kobe
James
Jane
King
Bill
Jone
Mary
May
Tina

尝试下遍历切片:

tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
for name in tuple_names[2:5]:
    print(name)
Kobe
James
Jane

最后在尝试下遍历字符串和列表:

str_names = '张三、李四、王二、小明'
for name2 in str_names:
    print(name2)
张
三
、
李
四
、
王
二
、
小
明
list_names = ['Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina']
for name3 in list_names:
    print(name3)
Jack
Rose
Kobe
James
Jane
King
Bill
Jone
Mary
May
Tina

可以看到短短几行代码就可以打印出整个序列,循环的强大超出你的想象,下一讲就开始学习Python循环的用法。


以上便是《Python学习05讲》所有内容,更多python学习请继续关注我的博客——风起怨江南,不定期更新,原创不易,如果喜欢请点赞和关注,谢谢大家的支持!

获得更多免费的学习资料请添加微信公众号——风起怨江南,谢谢大家的关注和支持!

发布了10 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/JackMengJin/article/details/105472981
今日推荐