Python如何让print(l for l in List)写法正确输出列表所有元素?
问题原因
你传入print()的(l for l in List)是生成器表达式,属于可迭代对象而非直接的输出内容,print()默认不会主动迭代它的内部元素,只会打印该对象的内存地址标识,也就是你看到的输出结果。
无需单独编写for循环的实现方案
- 方案1:利用
print()的参数解包特性
print(*List, sep='\n')
语法中的*会把列表List的所有元素拆解为print()的独立位置参数,指定分隔符sep为换行符\n,即可实现逐行打印每个元素,效果和你写的独立for循环完全一致,且兼容性更强,哪怕列表中包含非字符串类型的元素也能正常打印。
- 方案2:先拼接字符串再统一打印
print('\n'.join(List))
先调用字符串的join()方法,用换行符把列表所有元素拼接为一个完整的多行字符串,再一次性打印,也能得到预期效果,该方案要求列表所有元素均为字符串类型,否则需要先做类型转换。
内容的提问来源于stack exchange,提问作者KrissKloss
相关产品推荐
相关产品推荐

