PYTHON 数据结构 - 元组

1.1 数据结构

一般常用的有数组(Array),集合(Set),列表(List),队列(Queue),链表(Linkedlist),树(Tree),堆(Heap),栈(Stack),字典(Dictionary)

Python中数据结构主要有序列,集合,字典。

1.2 序列

序列是一种可迭代的,元素有顺序,可以重复出现的数据结构,序列可以通过索引访问;序列包括列表,字符串,字节串,元组等。

对于索引,切片与字符串笔记中相同,不再记录。

1.2.1 通用函数

  • len(序列)长度(即元素的个数)

    >>> a =(1,2,3,4,5)
    >>> len(a)
    5
    
  • max(序列)最大值

    元素如整数,字符串按编码进行求值

    >>> a = (1,2,3,4,5)
    >>> max(a)
    5
    
  • min(序列) 最小值

    元素如整数,字符串按编码进行求值

    >>> a = (1,2,3,4,5)
    >>> min(a)
    1
    

1.3 元组

元组类似于数组,元组本身一旦定义是不可变的(即不能添加,删除其中的元素),元组里的元素类型可以是不同的(与数组有区别)。

数据类型:tuple

优点:

  • 可以更安全地保护数据
  • 增加程序执行速度

1.3.1 创建元组

  • 通过()创建多元素元组
# a = (元素1,元素2, ...)

>>> a = ('张三','男',100,100,90)
>>> print(a)
('张三', '男', 100, 100, 90)

  • 只有一个元素的创建方法
>>> a = ('hello')
>>> a
'hello'  # 发现结果不是元组,是一个字符串,()相当于运算优先级的作用了。

>>> a = ('hello',)  # 加一个逗号
>>> a
('hello',)
  • 用tuple函数创建
# tuple(序列)
>>> tuple(a)
('h', 'e', 'l', 'l', 'o')
>>>
>>> a = [1,2,3,4]
>>> tuple(a)
(1, 2, 3, 4)
  • 创建空元组
>>> a = ()
>>> b = tuple()
>>> a,b
((), ())

1.3.2 访问元组

可以通过索引的方式访问,也可以通过切片的方式访问

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

1.3.3 元组解包

把元组的元素值,赋值给变量。

>>> num = (1,2,3)
>>> a,b,c = num  # 把1,2,3 赋值给a,b,c (注意:元素个数和变量个数对应)
>>> print(a,b,c)
1 2 3

>>> num = (1,2,3,4,5)
>>> a,*b,c = num  # 如果个数不对应,可以用*var接收部分数据
>>> print(a,b,c)
1 [2, 3, 4] 5


>>> num=(1,2,3,4)
>>> a,_,b,_ = num  # 对于不需要的元素,可以用_接收,约定不取这个元素(本质上赋值给_了)
>>> print(a,b,_)
1 3 4

1.3.4 遍历元组

# 用for的一般遍历
# 循环一次,取出下一个
num = (1, 2, 3, 4, 5)
for item in num:
    print(item) # 依次打印1,2,3,4,5


# 带索引的遍历
num = (1, 2, 3, 4, 5)
for n, item in enumerate(num):  # n, item就是解包
    print(n,item)
    

1.3.5 删除元组

元组本身是不可变的,不支持修改,但可以删除整个元组。

>>> num = (1,2,3)
>>> del num
>>> num

1.3.6 元组的 +, * 运算

元组的+运算是合并两个元组,创建一个新元组。

>>> a = (1,2,3)
>>> b = (4,5,6)
>>> c = a + b
>>> c
(1, 2, 3, 4, 5, 6)

元组的*运算是重复元组,创建一个新元组。

>>> a = (1,2)
>>> a * 3
(1, 2, 1, 2, 1, 2)

1.3.7 用zip打包成元组

zip把多个序列,按列打包成元组。想像成一个二维表格,按列组成元组的元素。

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

d = zip(a,b,c)
print(tuple(d)) # ((1, 4, 7), (2, 5, 8), (3, 6, 9))
posted @   叁只小羊  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示