繁体   English   中英

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

[英]How do I to loop all of contents of list?

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))  

那只会返回一个字符串。 那么,如何从列表中提取所有字符串?

下面的代码也符合我的期望。 为什么“打印”方法可以,返回方法不能?

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

事实证明。

[NewYork]

[London]

[Paris]

[Rome]

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

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

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

您可以将此功能转换为生成器

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)

或者只是使用加入

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM