我正在使用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))]
它将起作用。此列表理解中有什么不正确的地方吗?
在字符串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)]
祝你好运!