列表推导式是 Python 中一种非常强大且简洁的工具,可以用来快速生成列表。结合随机数据生成,列表推导式可以帮助我们在短时间内创建大量随机数据,这对于测试、模拟和数据分析等场景非常有用。今天我们就来学习如何在 Python 中使用列表推导式生成随机数据。
1. 列表推导式基础
列表推导式的语法非常简单,基本形式如下:
new_list = [expression for item in iterable]
这里,expression
是对 item
的操作,iterable
是一个可迭代对象,比如列表、元组或字符串。
示例 1:生成简单的数字列表
# 生成一个包含 0 到 9 的列表
numbers = [i for i in range(10)]
print(numbers)
# 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. 使用 random
模块生成随机数
在 Python 中,random
模块提供了多种生成随机数的方法。我们可以通过导入 random
模块来生成随机数据。
示例 2:生成随机整数列表
import random
# 生成一个包含 10 个 0 到 99 之间的随机整数的列表
random_integers = [random.randint(0, 99) for _ in range(10)]
print(random_integers)
# 输出示例: [45, 78, 12, 99, 34, 67, 89, 23, 56, 10]
3. 生成随机浮点数列表
除了整数,我们还可以生成随机浮点数。
示例 3:生成随机浮点数列表
# 生成一个包含 10 个 0.0 到 1.0 之间的随机浮点数的列表
random_floats = [random.random() for _ in range(10)]
print(random_floats)
# 输出示例: [0.3456, 0.7890, 0.1234, 0.5678, 0.9012, 0.2345, 0.6789, 0.0123, 0.4567, 0.8901]
4. 生成指定范围内的随机浮点数列表
我们可以使用 random.uniform(a, b)
方法生成指定范围内的随机浮点数。
示例 4:生成指定范围内的随机浮点数列表
# 生成一个包含 10 个 1.0 到 10.0 之间的随机浮点数的列表
random_uniform_floats = [random.uniform(1.0, 10.0) for _ in range(10)]
print(random_uniform_floats)
# 输出示例: [5.67, 3.45, 8.90, 1.23, 7.89, 4.56, 2.34, 9.01, 6.78, 1.01]
5. 生成随机选择的元素列表
random.choice()
方法可以从一个列表中随机选择一个元素。
示例 5:生成随机选择的元素列表
options = ['apple', 'banana', 'cherry', 'date']
# 生成一个包含 10 个随机选择的水果名称的列表
random_fruits = [random.choice(options) for _ in range(10)]
print(random_fruits)
# 输出示例: ['banana', 'apple', 'cherry', 'date', 'banana', 'apple', 'cherry', 'date', 'banana', 'apple']
6. 生成随机布尔值列表
random.choice([True, False])
可以生成随机的布尔值。
示例 6:生成随机布尔值列表
# 生成一个包含 10 个随机布尔值的列表
random_booleans = [random.choice([True, False]) for _ in range(10)]
print(random_booleans)
# 输出示例: [True, False, True, True, False, True, False, True, False, True]
7. 生成带有条件的随机数据
我们可以在列表推导式中添加条件,生成符合特定条件的随机数据。
示例 7:生成偶数随机整数列表
# 生成一个包含 10 个 0 到 99 之间的随机偶数的列表
random_even_integers = [random.randint(0, 99) * 2 for _ in range(10)]
print(random_even_integers)
# 输出示例: [8, 18, 4, 6, 16, 24, 12, 28, 10, 20]
8. 生成嵌套列表中的随机数据
我们还可以在嵌套列表中生成随机数据。
示例 8:生成嵌套列表中的随机数据
# 生成一个 3x3 的二维列表,每个元素是一个 0 到 9 之间的随机整数
nested_random_integers = [[random.randint(0, 9) for _ in range(3)] for _ in range(3)]
print(nested_random_integers)
# 输出示例: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
实战案例:生成随机学生成绩
假设我们需要生成一个包含 10 名学生的随机成绩列表,每名学生的成绩是一个 0 到 100 之间的随机整数。
实战案例代码
import random
# 生成一个包含 10 名学生的随机成绩列表
student_scores = [random.randint(0, 100) for _ in range(10)]
print(student_scores)
# 输出示例: [78, 92, 56, 89, 67, 81, 73, 85, 90, 64]
# 计算平均分
average_score = sum(student_scores) / len(student_scores)
print(f"平均分: {average_score:.2f}")
# 输出示例: 平均分: 76.80
# 找出最高分和最低分
max_score = max(student_scores)
min_score = min(student_scores)
print(f"最高分: {max_score}, 最低分: {min_score}")
# 输出示例: 最高分: 92, 最低分: 56
总结
通过本文的学习,我们了解了如何在 Python 中使用列表推导式生成随机数据。我们从基础的列表推导式开始,逐步介绍了生成随机整数、随机浮点数、随机选择的元素、随机布尔值以及带有条件的随机数据。最后,我们通过一个实战案例展示了如何生成随机学生成绩并进行简单的统计分析。
好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!
文末福利
公众号消息窗口回复“编程资料”,获取Python编程、人工智能、爬虫等100+本精品电子书。