现在我有了这个b
列表:
[['AKRON', 65.5574], ['ALTON', 69.6722]]
里面有两个清单...... 我想分别得到城市和数字.. 因此我尝试使用for循环来解决这个问题:
def sortfunction(alpha):
for city,number in alpha:
city = '{:^30}'.format(city)
number = '{:<5}'.format(number)
return city,number
但是,当我尝试打印城市和数字时,它只给我一个值,如:
(' AKRON ', '65.5574')
但我真的想要列表中的所有变量......有什么办法可以解决它吗? PS:可以将b列表更改为其他内容,我也不会... 非常感谢你
答案 0 :(得分:1)
你的功能会返回循环中的第一项,并且没有机会获得其他元素。您可以使用yield
返回生成器,也可以使用print
显示结果,而不是返回。
In [3]: b = [['AKRON', 65.5574], ['ALTON', 69.6722]]
In [4]: def sortfunction(alpha):
...: for city,number in alpha:
...: city = '{:^30}'.format(city)
...: number = '{:<5}'.format(number)
...: yield city,number
...:
In [5]: for c, n in sortfunction(b):
...: print((c, n))
...:
(' AKRON ', '65.5574')
(' ALTON ', '69.6722')
答案 1 :(得分:1)
分别获取所有城市和数字是<dl>
<div>
<dt>Key1</dt>
<dd>Value1</dd>
</div>
<div>
<dt>Key2</dt>
<dd>Value2</dd>
</div>
</dl>
:
zip
答案 2 :(得分:0)
这是一个简单的修复,实际上你正在返回值,所以不使用return语句只使用print,它将打印城市和数字。
由于您使用了返回,函数在第一次迭代后结束。
其他解决方案使用两个列表城市和号码,并将城市和数字变量附加到这些列表中,最后返回城市列表和号码列表。