如何从包含多个列表的列表中获取所有变量?

时间:2018-05-13 06:18:06

标签: python python-3.x list for-loop return

现在我有了这个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列表更改为其他内容,我也不会... 非常感谢你

3 个答案:

答案 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,它将打印城市和数字。

由于您使用了返回,函数在第一次迭代后结束。

其他解决方案使用两个列表城市和号码,并将城市和数字变量附加到这些列表中,最后返回城市列表和号码列表。