Python 3.6.4:能否将for循环嵌入print命令实现一行代码?
嘿,我懂你想精简代码的思路——把遍历Data列表的逻辑直接整合到print语句里,确实能让代码更紧凑,还能帮你缩小文件体积!
先给你明确答案:完全可以做到,而且有两种简洁的方式,都能替代单独的for循环。结合你的需求(先收集7个问题的答案到Data,再输出),我给你具体的实现示例:
第一步:收集用户输入(保持简洁写法)
用列表推导式快速收集7个问题的答案,比逐个写input要精简很多:
Questions = ["姓名", "出生日期", "国籍", "护照号", "有效期", "签发地", "性别"] Data = [input(f"{q}: ") for q in Questions]
第二步:用print直接整合遍历逻辑
方法1:利用print的参数解包
print函数支持接收多个参数,用*解包Data列表,再指定分隔符为换行,就能一次性打印所有元素,每个元素占一行:
print(*Data, sep='\n')
这个写法完全等价于原来的:
for item in Data: print(item)
方法2:用字符串join方法拼接后打印
如果想更灵活控制元素之间的分隔符(比如换成空格、逗号),可以用join把列表元素拼接成一个字符串,再传给print:
print('\n'.join(Data))
如果你的Data里包含非字符串类型的元素(比如数字),可以用生成器表达式先转成字符串:
print('\n'.join(str(item) for item in Data))
这两种写法都能帮你去掉单独的for循环,让代码更简洁,也能有效减少文件大小。你可以根据自己的需求选其中一种就行~
内容的提问来源于stack exchange,提问作者Simon Van den Bossche
相关产品推荐
相关产品推荐

