Python中的元组

1、元组特性介绍

  • 组和列表一样,也是一种序列。
  • 唯一的不同是,元组是相对不可变的。

2、高效创建元组

t1 = ()    # 创建 空 元素的元组

你以为这就完了?
单一元素元组怎么搞?

In [168]: v_tp = (3)

In [169]: only_tp = 3,

In [170]: type(v_tp)

Out[170]: int

In [171]: type(only_tp)
Out[171]: tuple

创建非空元素的元组是用逗号,而不是用小括号

tuple() 可以对其他序列类型的数据转换为元组。

In [173]: s1 = 'car'

In [174]: li = [1,2,3]

In [175]: tuple(s1)
Out[175]: ('c', 'a', 'r')

In [176]: tuple(li)
Out[176]: (1, 2, 3)

In [177]: dl = [1,2,3,['a','b']]

In [178]: tuple(dl)
Out[178]: (1, 2, 3, ['a', 'b'])
In [33]: t1 = (1, 2, 3, ['a', 'b'])
In [34]: t1[3][0]=0
In [35]: t1
Out[35]: (1, 2, 3, [0, 'b'])

3、循环元组
for-tuple.py 文件内容

t = ('lenovo', 1314, 521)

for item in t:
    print(item)

执行

python3 for-tuple.py

输出结果

lenovo
1314
521

4、使用元组的理由

  1. 占用内存空间小
  2. 元组内的值不会被意外的修改
  3. 可作为字典的键
  4. 函数的参数是以元组形式传递的
  5. 命名元组有时候可以代替类的对象(面向对象的时候讲)
### Python元组的基本操作 #### 定义与创建元组 元组是一种有序且不可变的数据集合,能够存储多种类型的元素。要创建一个元组,可以直接使用圆括号包裹各个元素,并通过逗号分隔开。对于只含有单个元素的元组,在该元素之后也需加上逗号来区分其与其他表达式的差异[^1]。 ```python tu = (1, 2, 3, 'a', 'b', 'c') empty_tuple = () single_element_tuple = ("only", ) print(single_element_tuple) # 输出: ('only',) ``` #### 访问元组中的元素 由于元组支持索引访问方式,因此可以通过指定位置获取特定项的内容;同时也可以利用切片语法取得连续片段内的成员。需要注意的是,负数索引可以从序列末端向前计数[^3]。 ```python example_tuple = ('apple', 'banana', 'cherry') # 获取第一个元素 first_item = example_tuple[0] # 使用负索引获得最后一个元素 last_item = example_tuple[-1] # 切片得到中间两个元素组成的子元组 middle_items = example_tuple[1:3] ``` #### 遍历元组 遍历意味着按照顺序逐一遍览容器里的每一个条目。这通常借助`for`循环实现,从而简化迭代过程并提高代码可读性。 ```python colors = ('red', 'green', 'blue') for color in colors: print(color) ``` #### 修改元组内容的方法 尽管直接更改已存在的元组是不可能的事情,但是可以通过一些间接手段达到目的。比如先将目标元组合成列表形式做适当调整后再转回原状,或者是构建全新的包含所需变动后的版本作为替代品。 ```python original_tuple = ('one', 'two', 'three') # 转换成列表修改再转换回来 temp_list = list(original_tuple) temp_list.append('four') modified_tuple = tuple(temp_list) # 或者创建一个新的带有额外项目的元组 new_tuple_with_addition = original_tuple + ('four',) ``` #### 查找元组内某值的位置 如果想要知道某个特定数值在整个系列里处于何位,则可以调用内置函数`.index()`来进行定位查询。此方法会返回首次出现该项时对应的序号,若不存在则抛出异常。 ```python numbers = (78, 92, 45, 67, 89, 78) position_of_92 = numbers.index(92) # 返回第一次找到92的位置 try: position_of_nonexistent_value = numbers.index(-1) except ValueError as e: print(e) # 当找不到给定值时触发错误处理逻辑 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值