如何循环列表的所有内容?

时间:2019-02-01 10:27:50

标签: python

def create_area_group(sort_area_group):
    for area_name in sort_area_group:
        areas = '\n[{}]\n'.format(area_name)
    return areas 

sort_area_group = ['NewYork', 'London', 'Paris', 'Rome']

print(create_area_group(sort_area_group))  

仅返回一个字符串。那我怎么提取 列表中的所有字符串?

下面的代码也符合我的预期。 为什么'print'方法可以,而return方法不能呢?

for area_name in sort_area_group:
        areas = '\n[{}]\n'.format(area_name)
        print(areas)

这是事实。

[NewYork]

[London]

[Paris]

[Rome]

我认为这是一个基本问题,但找不到相同的问题。

3 个答案:

答案 0 :(得分:4)

有关更多信息,请参见help(str.join)

def create_area_group(sort_area_group):
    return "[" + ']\n\n['.join(sort_area_group) + "]" 

答案 1 :(得分:1)

您可以将此功能设置为generator

def create_area_group(sort_area_group):
    for area_name in sort_area_group:
        yield '[{}]'.format(area_name)

#Then iterate over it:
for area in create_area_group(sort_area_group):
    print(area)

或者只使用join

print("[{}]".format(']\n\n['.join(sort_area_group)))

答案 2 :(得分:0)

发生的事情是您在循环的每次迭代中都更改了areas的值,因此,当您打印create_area_group的结果时,只有sort_area_group中的最后一个值会出现现身。