专栏地址:最强 Python3 基础
公众号:Python 生产力
文章目录
前言
在这之前,已经介绍过列表、元组、字典和集合这四种数据类型,每一种数据类型都有它独特的地方,如集合是无序的,不能知道具体元素的具体位置。这些特点的灵活使用能帮助在平常编写代码的过程中解决一些不方便操作的数据。
同时,这些所有数据类型都可以使用 for 关键词进行迭代来获取里面的元素或者元素相对应位置的下标,或者使用特定的生成式来简化迭代所需写的代码。更或者,用更加强大的生成器一步一步推算出我们所需要的数据,而不是一次性生成所有数据。
下面这个表格展示了四种数据类型相同点以及不同点在哪。
名称 | 形式 | 特点 | 可变性 |
---|---|---|---|
列表(list) | ['Python', 'Java'] |
1、有序并且可以重复。2、可以使用下标来对列表进行添加或删除等操作 | 可变 |
元组(tuple) | (123, 456, 789) |
1、有序并且可以重复2、不能做添加、更新操作 | 不可变 |
字典(dict) | {'name': 'C++', 'price': 111} |
1、无序并且键唯一2、以键值对的形式存储 | 可变 |
集合(set) | {'C', 'Ruby', 'Javascript'} |
1、无序并且不重复2、不能对某个具体的值做更新或者删除操作3、空集合只能使用 set() 方法来创建 | 可变 |
一、列表
1. 列表其他用法
列表相比较其他三种数据类型,是最灵活的一种。因为列表对添加到其中的元素并没有特别的要求,所以我们在任何时候都可以添加一些我们想要的元素进去,尤其是将一个列表添加到另一个列表当中,这时候就产生了列表的嵌套,我们常把这种用作矩阵的表达。
当我们想表达一个 2x3 的矩阵的时候,只需要在一个列表中添加另外两个列表元素即可。在内存限制下,我们可以添加任意多个嵌套列表,在多重嵌套列表的情况下,对列表元素的查询一样简单。只需要使用多个下标即可取出相对应的元素。
a = [
[1, 5, 9],
[1, 2, 8]
]
print(a[0])
print(a[0][1])
print(a[1][0:2])
# 输出 >>>
[1, 5, 9]
5
[1, 2]
2. 列表迭代
很多情况下我们需要对列表进行循环获取元素,这时候就需要用 for 这个关键词来循环。列表的循环有四种形式,每种形式获取值的方式不一样,看下面的四个例子。下面四个例子各展示了直接获取值、先获取索引再根据索引获取值、同时获取索引和值(enumerate()
)以及使用 iter()
迭代器这四种方法。四种方法各有优缺点,在实际使用场景中需要具体区分。
# 直接获取值
list1 = ['Python', 'Java', 'C++']
for v in list1:
print(v)
# 输出 >>>
Python
Java
C++
# ======================================================================================
# 先获取索引再根据索引获取值
list2 = ['Python', 'Java', 'C++']
for i in range(len(list2)):
print(list2[i])
# 输出 >>>
Python
Java
C++
# ======================================================================================
# 用 enumerate() 函数来同时获取索引和值
list3 = ['Python', 'Java', 'C++']
for i, v in enumerate(list3):
print('索引: ', i<