python列表元素为元组的遍历

先看一段标准的遍历代码:

lst = [('age', 20, 3), ('name', 'zhang',4)]
for i, j, k in lst:
    print(i, j, k)

结果为:
在这里插入图片描述
应该可以清晰地看出,在lst中挨个取出元组,用于接收元组内元素的变量为i,j,k,变量个数必须与元组内元素个数相同。

再看实际应用:

dic = {'name' : 'zhang', 'age': 20}
print(dic.items())
#打印结果为:dict_items([('age', 20), ('name', 'zhang')])
# dic.items()返回的是列表,列表内是元组,元组是每一个原字典中键值对构成
# 就是 [('age', 20), ('name', 'zhang')]
for i, j in dic.items():  # 对列表[('age', 20), ('name', 'zhang')]遍历就是了
    print(i, j)

结果为:
在这里插入图片描述

在这里插入图片描述
因为字典会以无序方式转为列表,用dic.items()方法,除了会吧字典转换为dict_items([(‘age’, 20), (‘name’, ‘zhang’)])外,还可能转换为dict_items([(‘name’, ‘zhang’), (‘age’, 20)]),所以最后结果会有顺序上的不同。

### Python 中的元组 **一、定义元组** 在Python中,元组是一种不可变的数据类型。创建元组的方式非常简单: 1. **直接使用圆括号`()`** ```python tuple_example = (1, "hello", True) ``` 2. **省略圆括号(推荐加圆括号提高可读性)** ```python another_tuple = 1, 'world', False # 这样也是合法的 ``` 对于只有一个元素元组,需要在其后添加逗号 `,` 来表示它是元组而不是一个带括号的对象: ```python single_element_tuple = ("only one element",) # 注意结尾处有逗号 ``` 如果想创建空元组,则只需要一对空的圆括号即可。 --- **二、遍历元组** 由于元组是一个序列类型的容器,所以我们可以很方便地对其进行迭代访问每个元素。 最常用的做法就是通过for循环来进行遍历: ```python my_tuple = ('apple', 'banana', 'cherry') for item in my_tuple: print(item) ``` 另外也可以结合索引来获取对应的值: ```python for index in range(len(my_tuple)): print(f"Index {index}: Value is {my_tuple[index]}") ``` 还可以利用内置函数如 `enumerate()` ,它可以在遍历时同时得到下标及其对应内容。 ```python for i, value in enumerate(my_tuple): print('Item %d: %s' %(i,value)) ``` --- **三、关于“修改”元组的问题** 需要注意的是,一旦创建了元组就不能更改其中的内容——即不能对已经存在的元组做增删改操作,因为它们是immutable(不可变) 的特性所决定的。但是可以通过一些技巧间接达到类似的效果: - 如果你需要改变某个特定位置上的数据项,可以考虑先将该元组装换为列表形式,在完成编辑后再转回成新的元组; ```python old_tuple = (10, 20, 30) temp_list = list(old_tuple) # 转化为list以便于修改 temp_list[1] = 50 # 修改指定位置元素 new_tuple = tuple(temp_list) # 再转换回去形成新tuple print(new_tuple) # 输出结果为 (10, 50, 30) ``` 不过请注意这样做实际上是生成了一个全新的元组,并不是原位更新旧有的那个。 另一种情况是你想要往现有的元组合并其他元素时,可通过"+"运算符连接两个甚至更多个元组;但这同样会产生一个新的包含所有合并起来项目的元组实例。 ```python first_part = (4, 8) second_part = (9,) combined_tuples = first_part + second_part # combined_tuples 现在等于 (4, 8, 9) ``` 综上所述,虽然不能直接修改已存在元组内的成员,但我们总能找到替代方案来满足实际需求!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值