python:7 元组

元组

  • 元组的应用场景

  • 定义元组

  • 元组常见操作

1 元组的应用场景

思考: 如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

答: 列表? 列表可以一次性存储多个数据,但是列表中的数据允许更改。

num_list = [10,20,30]

# 这里将下标为 0 的数据修改为 100
num_list[0] = 100

注意:

一个元组可以存储多个数据,元组内的数据是不能修改的。

2 元组的定义

元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。

# 定义 t1 为多个数据元组
t1 = (10,20,30)
print(t1)

# 定义 t2 为单个数据元组
t2 = (101,)
print(t2)

# 通过 type 函数获取 t1、t2 数据类型 
print(type(t1))
print(type(t2))
[15:03:15 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
(10, 20, 30)
(101,)
<class 'tuple'>             # 类型为 tuple 元组类型
<class 'tuple'>

注意:如果定义的元组只有一个数据,那么这个数据后面也添加逗号,否则数据类型为唯一的这个数据的数据类型,如下示例

# 定义元组
t2 = (1,)
print(type(t2))

# 由于没有添加逗号输出为 int
t3 = (1)
print(type(t3))

# 由于没有添加逗号输出为 str
t4 = ('hello')
print(type(t4))
# 输出
[14:58:26 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
<class 'tuple'>
<class 'int'>
<class 'str'>

3 元组的常见操作

元组数据不支持修改,只支持查找,具体如下:

  • 按下标查找数据
tuple1 = ('aa','bb','cc','dd')

# 可以看到查询操作和列表相同,通过下标获取
print(tuple1[0])
[15:04:51 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
aa
  • index(): 查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的 index 方法相同。
tuple1 = ('aa','bb','cc','dd')

# 下标为 0
print(tuple1.index('aa'))

# 下标为 2
print(tuple1.index('cc'))
[15:11:14 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
0
2
  • count(): 统计某个数据在当前元组出现的次数
tuple1 = ('aa','bb','cc','dd','cc')

# 出现 1 次
print(tuple1.count('aa'))

# 出现 2 次
print(tuple1.count('cc'))
[15:11:31 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
1
2
  • 统计元组中数据的个数。
tuple1 = ('aa','bb','cc','dd','cc')

# 5 个元素个数
print(len(tuple1))
[15:12:33 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
5

4 元组数据的修改

我们在工作中遇到不能修改的数据直接放入到元组中即可,因为元组的数据本身就不支持修改,如有修改操作 py 会就提示报错

tuple1 = ('aa','bb','cc','dd')

print(tuple1)

# 将下标为 0 的数据修改为 aaa
tuple1[0] = 'aaa'
print(tuple1)
# 直接报错 'tuple' object does not support item assignment
[15:13:51 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
('aa', 'bb', 'cc', 'dd')
Traceback (most recent call last):
  File "/root/py-demo/day-1/test.py", line 5, in <module>
    tuple1[0] = 'aaa'
TypeError: 'tuple' object does not support item assignment

但是如果在元组中嵌套了可修改数据,那么该数据就变成了可以修改

t2 = ('aa','bb','cc','dd',['1','bb'])

# 输出元组下标为 4 的数据
print(t2[4])

# 输出元组下标为 4 ,因为下标 4 的数据为一个列表然后取出列表中下标为 1 的数据也就是 bb
print(t2[4][1])

# 将 t2 元组下标为 4 列表中下标为 1 的数据改为 22
t2[4][1] = '22'
print(t2)
# 可看到下标为 4 的数据改为了 22
[15:21:50 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
['1', 'bb']
bb
('aa', 'bb', 'cc', 'dd', ['1', '22'])

注意:

在工作中单反数据是在元组里面,我们尽量不做修改

5 总结

定义元组:

t1 = (10,20,30)
t2 = (10,)
  • 常用操作方法
    • index()
    • len()
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇