从零学量化08—Python基础:列表、集合、字典

本文是从零学量化投资系列的第8篇,系列目录如下:

从零学量化投资连载——目录

上节我们通过一个每日涨跌比的实例来初识Python,本节我们介绍Python中列表、集合、字典这几种常用数据类型的基本操作。

01

列 表


Python的列表(List)是一个灵活的数据结构,它可以存储多个项目,这些项目可以是不同的类型(如整数、字符串、其他列表等)。列表是Python中最常用的数据类型之一。本文将介绍Python列表的各种操作,包括构建、索引、切片、拼接、添加、插入、删除、排序,以及如何在循环中使用列表。

1. 列表的含义和构建

列表是由一系列按特定顺序排列的元素组成。列表在Python中用方括号([ ])表示,并用逗号分隔其中的元素。

numbers = [1, 2, 3, 4, 5]``names = ['Alice', 'Bob', 'Charlie']

2. 索引和切片

Python中的列表索引是0基础的。也就是说,列表的第一个元素的索引是0,第二个元素的索引是1,以此类推。

names = ['Alice', 'Bob', 'Charlie']``print(names[0])  # 输出:Alice

切片操作允许你获取列表的一个子集。使用冒号(:)来指定开始和结束索引。

numbers = [0, 1, 2, 3, 4, 5, 6]``print(numbers[2:5])  # 输出:[2, 3, 4]

3. 拼接

Python列表可以通过使用+操作符进行拼接。

list1 = [1, 2, 3]``list2 = [4, 5, 6]``combined = list1 + list2``print(combined)  # 输出:[1, 2, 3, 4, 5, 6]

4. 添加元素

使用append()方法可以在列表末尾添加新元素。

names = ['Alice', 'Bob']``names.append('Charlie')``print(names)  # 输出:['Alice', 'Bob', 'Charlie']

5. 插入元素

insert()方法可以在列表的任意位置插入新元素。insert()方法需要两个参数,第一个参数是新元素的位置,第二个参数是新元素。

names = ['Alice', 'Charlie']``names.insert(1, 'Bob')``print(names)  # 输出:['Alice', 'Bob', 'Charlie']

6. 删除元素

Python提供了几种删除列表元素的方法,如del语句、remove()方法和pop()方法。

# 使用del语句``numbers = [1, 2, 3]``del numbers[1]``print(numbers)  # 输出:[1, 3]``   ``# 使用remove()方法``numbers = [1, 2, 3]``numbers.remove(2)``print(numbers)  # 输出:[1, 3]``   ``# 使用pop()方法``numbers = [1, 2, 3]``numbers.pop(1)``print(numbers)  # 输出:[1, 3]

7. 列表排序

sort()方法可以对列表进行永久排序,而sorted()函数返回一个排序后的新列表,而不改变原列表。

numbers = [3, 1, 4, 1, 5, 9, 2]``numbers.sort()``print(numbers)  # 输出:[1, 1, 2, 3, 4, 5, 9]``   ``numbers = [3, 1, 4, 1, 5, 9, 2]``print(sorted(numbers))  # 输出:[1, 1, 2, 3, 4, 5, 9]``print(numbers)  # 输出:[3, 1, 4, 1, 5, 9, 2]

8. 列表推导式

列表推导式(List Comprehension)是一种用于创建列表的简洁且易读的方式。例如,我们希望创建一个包含0-9平方的列表,可以使用列表推导式实现:

squares = [x**2 for x in range(10)]``print(squares)  # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推导式还可以搭配条件语句使用,例如我们想要创建一个只包含0-9偶数平方的列表:

squares_of_evens = [x**2 for x in range(10) if x % 2 == 0]``print(squares_of_evens)  # 输出:[0, 4, 16, 36, 64]

9. 列表在循环中的应用

我们可以用for循环遍历列表中的所有元素。

names = ['Alice', 'Bob', 'Charlie']``for name in names:`    `print(name)

这将依次打印列表中的每一个名字。

02

集 合

Python 的集合(Set) 是一个无序的,不重复的元素组合,它是 Python 数据结构中的一种,类似于数学中的集合概念。集合可以用于去重,进行集合运算如并集、交集、差集等。下面介绍集合的定义、特点、创建方法和各种操作。

1. 集合的含义和特点

集合,顾名思义,是许多元素的集合。在Python中,集合有两个主要特点:无序性、唯一性。

由于集合的无序性,我们不能为集合中的元素进行索引或分片操作。

2. 创建集合

在Python中,我们可以使用花括号 { } 或 set() 函数来创建集合。注意,如果要创建空集合,你必须使用 set(),而不能使用 { },因为 { } 用于创建空字典。

# 使用花括号创建集合``fruits = {'apple', 'banana', 'cherry'}``print(fruits)  # 输出:{'cherry', 'banana', 'apple'}``   ``# 使用set()函数创建集合``animals = set(['cat', 'dog', 'elephant'])``print(animals)  # 输出:{'elephant', 'cat', 'dog'}``   ``# 创建空集合``empty_set = set()``print(empty_set)  # 输出:set()

3. 集合的方法

Python的集合提供了一系列方法,用于常见的集合操作。

add(elem):向集合中添加新的元素。

remove(elem):从集合中删除一个元素。如果元素不存在,会引发 KeyError。

discard(elem):从集合中删除一个元素,如果元素不存在,不会发生任何事情。

pop():随机删除并返回集合中的一个元素。

clear():删除集合中的所有元素。

fruits = {'apple', 'banana', 'cherry'}``fruits.add('dragonfruit')``print(fruits)  # 输出:{'dragonfruit', 'cherry', 'banana', 'apple'}``   ``fruits.remove('banana')``print(fruits)  # 输出:{'dragonfruit', 'cherry', 'apple'}``   ``fruits.discard('banana')``print(fruits)  # 输出:{'dragonfruit', 'cherry', 'apple'}``   ``print(fruits.pop())  # 随机删除并返回一个元素,例如:apple``print(fruits)  # 输出:{'dragonfruit', 'cherry'}``   ``fruits.clear()``print(fruits)  # 输出:set()

4. 集合运算

Python还提供了一些方法来执行常见的集合运算,如并集 (union)、交集 (intersection)、差集 (difference) 和对称差集 (symmetric_difference)。

a = {1, 2, 3}``b = {2, 3, 4}``   ``print(a.union(b))  # 输出:{1, 2, 3, 4}``print(a.intersection(b))  # 输出:{2, 3}``print(a.difference(b))  # 输出:{1}``print(a.symmetric_difference(b))  # 输出:{1, 4}

5. 集合的去重运用

集合常常用于去除列表中的重复元素,因为集合内的元素都是唯一的。

numbers = [1, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5]``unique_numbers = set(numbers)``print(unique_numbers)  # 输出:{1, 2, 3, 4, 5}

03

字 典

Python 的字典(Dictionary) 是一种可变容器模型,可以存储任意类型的对象,如数字、字符串甚至是其他字典。字典是键值对(Key:Value)的集合,键必须是唯一的,但值则不必。字典是一个无序的结构类型,它的数据是以键值对形式存储的。本文将介绍字典的定义、特性、创建、访问、修改、删除、常用的方法和运用。

1. 字典的含义和特性

字典是Python中非常重要的数据结构,字典有以下特性:无序性、键值对、唯一的键。

2. 创建字典

在Python中,我们可以使用花括号 { } 或 dict() 函数来创建字典。

# 使用花括号创建字典``person = {'name': 'John', 'age': 30, 'city': 'New York'}``print(person)  # 输出:{'name': 'John', 'age': 30, 'city': 'New York'}``   ``# 使用dict()函数创建字典``person = dict(name='John', age=30, city='New York')``print(person)  # 输出:{'name': 'John', 'age': 30, 'city': 'New York'}

3. 访问字典

我们可以使用键来访问字典中的值。如果你尝试访问字典中不存在的键,Python会引发一个KeyError异常。

person = {'name': 'John', 'age': 30, 'city': 'New York'}``print(person['name'])  # 输出:John

4. 添加、修改和删除字典

添加:我们可以通过赋值来添加新的键值对。

person = {'name': 'John', 'age': 30, 'city': 'New York'}``person['job'] = 'Engineer'  # 添加新的键值对``print(person)  # 输出:{'name': 'John', 'age': 30, 'city': 'New York', 'job': 'Engineer'}

修改:我们可以通过赋值来修改现有的键值对的值。

person = {'name': 'John', 'age': 30, 'city': 'New York'}``person['age'] = 31  # 修改键值对的值``print(person)  # 输出:{'name': 'John', 'age': 31, 'city': 'New York'}

删除:我们可以使用 del 语句或 pop() 方法来删除键值对。

person = {'name': 'John', 'age': 30, 'city': 'New York'}``del person['age']  # 删除键值对``print(person)  # 输出:{'name': 'John', 'city': 'New York'}``   ``person = {'name': 'John', 'age': 30, 'city': 'New York'}``person.pop('age')  # 删除键值对``print(person)  # 输出:{'name': 'John', 'city': 'New York'}

5. 字典推导式

类似于列表推导式,字典推导式(Dictionary Comprehension)也是一种创建字典的简洁方式。例如,我们希望创建一个字典,字典的键是数字,值是数字的平方:

squares = {x: x**2 for x in range(5)}``print(squares)  # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

6. 字典的常用方法

Python的字典提供了一系列方法,用于常见的字典操作。

keys():返回字典中的所有键。

values():返回字典中的所有值。

items():返回字典中的所有键值对。

get(key, default):返回键对应的值,如果键不存在,返回默认值。

person = {'name': 'John', 'age': 30, 'city': 'New York'}``print(person.keys())  # 输出:dict_keys(['name', 'age', 'city'])``print(person.values())  # 输出:dict_values(['John', 30, 'New York'])``print(person.items())  # 输出:dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])``print(person.get('name'))  # 输出:John``print(person.get('job', 'Engineer'))  # 输出:Engineer

7. 字典的运用举例

字典在Python编程中有广泛的应用。我们可以使用字典来存储和处理各种类型的信息,以下是一个简单的例子:

# 创建一个字典,存储学生的名字和成绩``students = {'Tom': 89, 'Jerry': 92, 'Spike': 78}``   ``# 添加一个新的学生``students['Tyke'] = 85``   ``# 修改一个学生的成绩``students['Tom'] = 90``   ``# 删除一个学生``del students['Spike']``   ``# 遍历字典,打印所有学生的名字和成绩``for name, score in students.items():`    `print(f'Name: {name}, Score: {score}')``   ``# 输出:# Name: Tom, Score: 90``# Name: Jerry, Score: 92``# Name: Tyke, Score: 85

在这篇文章中,我们介绍了 Python 中的三种重要的数据结构:列表、集合和字典。这些数据结构在我们进行数据处理和操作时都发挥着至关重要的作用。列表提供了有序且可变的数据集,适合用于需要排序或频繁修改的数据。集合提供了无序且元素唯一的数据集,适用于去重和关系运算。字典则以键值对的形式存储数据,适用于需要映射关系的数据存储。

理解并掌握这些数据结构是学习 Python 语言的基础,它们能帮助我们更好地组织和处理数据,提高代码的效率和可读性。通过实践和练习,我们能更深入地理解这些数据结构的运用和优化。

我建了个量化学习群,可在公众号后台回复“入群”。

点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

👉Python书籍和视频合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

图片

👉Python副业创收路线👈

图片

这些资料都是非常不错的,朋友们如果有需要《Python学习路线&学习资料》,点击下方安全链接前往获取

CSDN大礼包:《Python入门&进阶学习资源包》免费分享

本文转自网络,如有侵权,请联系删除。

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值