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

2024-09-24 06:25:30 发布

您现在位置: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]

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


Tags: nameinformatforreturncreategrouparea
3条回答

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

详见help(str.join)

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

你可以把这个函数变成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)))

相关问题 更多 >