pygal.Bar()x_labels的列表理解

问题描述 投票:0回答:1

我正在使用pygal模拟骰子滚动。我想将其另存为svg文件。

import pygal
from die import Die


die_1 = Die()
die_2 = Die(10)
results = []

for roll_num in range(50000):
    result = die_1.roll() + die_2.roll()
    results.append(result)

frequencies = []
max_result = die_1.num_sides + die_2.num_sides

for value in range(2,max_result+1):
    frequency = results.count(value)
    frequencies.append(frequency)

hist = pygal.Bar()

hist.title = "Result of rolling a D6 and D10 50000 times"
hist.x_labels = [x for x in list(range(2,max_result+1))]
hist.x_title = "Result"
hist.y_title = "Frequency of Result"

hist.add('D6+D10', frequencies)
hist.render_to_file('different_dice.svg')

但是它给出了一个错误:

如果len(string)>索引和索引> 0:TypeError:类型为'int'的对象没有len()“

如果我评论列表理解行

hist.x_labels = [x for x in list(range(2,max_result+1))]

它将起作用。此列表理解中有什么不正确的地方吗?

python pygal
1个回答
0
投票

在字符串hist.x_labels = [x for x in list(range(2,max_result+1))]中,您不用list,仅使用range(2,max_result+1)就足够了。

例如,在我的程序中,我使用了histogram.x_labels = [num for num in range(2, max_result + 1)]

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.