练习15-9:改用列表解析 —— 为清晰可见,本节模拟掷骰子的结果时,使用的是较长的for循环。如果你熟悉列表解析,尝试将这些程序中的一个或两个for循环改为列表解析。
本节中for循环使用:
《Python编程:从入门到实践》第15章:生成数据_笨小古的博客-CSDN博客
使用列表解析:
from plotly.graph_objs import Bar, Layout
from plotly import offline
from die import Die
# 创建一个D6和一个D10骰子
die_1, die_2 = Die(6), Die(10)
# 掷骰子多次,并将结果存储在一个列表中
results = [die_1.roll() + die_2.roll() for roll_num in range(10_000)]
# 分析结果
max_result = die_1.num_sides + die_2.num_sides
frequencies = [results.count(value) for value in range(2, max_result + 1)]
# 可视化结果
x_values = list(range(2, max_result + 1))
data = [Bar(x=x_values, y=frequencies)]
x_axis_config = {'title': '结果', 'dtick': 1}
y_axis_config = {'title': '结果的频率'}
my_layout = Layout(title='掷一个D6和一个D10 10000次的结果', xaxis=x_axis_config, yaxis=y_axis_config)
offline.plot({'data': data, 'layout': my_layout}, filename='d6_d10.html')
可视化结果: