Zim*_*ano 0 python loops for-loop numbers list
在处理从列表中的数字组中创建条形图的程序时,我发现在列表中添加项目不起作用.我认为最好的方法就是做一个for循环.
这是我的清单:
phonelist = [[12,14,16,17,18],[16,23,54,64,32]]
Run Code Online (Sandbox Code Playgroud)
然后我尝试用for循环添加它
numphone = 0
for x in len(phonelist[0]):
numphone = numphone + x
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误:
TypeError:'int'对象不可迭代
我该怎么办?
>>> phonelist = [[12,14,16,17,18],[16,23,54,64,32]]
>>> [sum(li) for li in phonelist]
[77, 189]
>>> sum([sum(li) for li in phonelist])
266
Run Code Online (Sandbox Code Playgroud)
要么:
>>> sum(sum(li) for li in phonelist) # generator expression...
266
Run Code Online (Sandbox Code Playgroud)
如果您尝试创建单个类别,则可以使用dict:
data={'Bar {}'.format(i):sum(li) for i, li in enumerate(phonelist, 1)}
data['Total']=sum(data.values())
print data
{'Bar 2': 189, 'Bar 1': 77, 'Total': 266}
Run Code Online (Sandbox Code Playgroud)
然后,如果您想生成一个简单的条形图:
for bar in sorted(data.keys()):
print '{}: {}'.format(bar, int(round(25.0*data[bar]/data['Total']))*'*')
Run Code Online (Sandbox Code Playgroud)
打印:
Bar 1: *******
Bar 2: ******************
Total: *************************
Run Code Online (Sandbox Code Playgroud)