Python新手求助:如何用单行代码(优先lambda)打印列表元素
单行代码实现列表元素空格分隔打印(含lambda方案)
嘿,作为Python新手,想用单行代码搞定这个需求太容易啦!我给你两个实用方案,其中一个还用到了你提到的lambda函数:
方案1:最简单的print解包法(无需lambda)
如果已经定义了列表a = [1,2,3,4],直接用这行代码就能输出1 2 3 4:
print(*a)
原理:*操作符会把列表里的元素逐个解包成print函数的位置参数,而print默认的分隔符是空格,正好完美匹配你想要的输出格式。要是不想提前定义变量,也可以直接写print(*[1,2,3,4])。
方案2:结合lambda的实现(满足你的lambda要求)
要是必须用到lambda函数,那可以用map配合字符串拼接来实现:
a = [1,2,3,4] print(' '.join(map(lambda x: str(x), a)))
或者把变量定义和打印合并成真正的单行:
print(' '.join(map(lambda x: str(x), [1,2,3,4])))
原理:lambda x: str(x)把列表里的每个数字转成字符串,map会把这个lambda应用到列表的每个元素上,最后用' '.join()把所有字符串用空格连接起来,再通过print输出,这样得到的就是没有多余空格的标准格式。
另外还有一种用lambda+map的写法,但会多一个末尾空格,这里也提一下供你参考:
list(map(lambda x: print(x, end=' '), [1,2,3,4]))
不过这个会在最后多一个空格,而且因为map是惰性的,需要用list()触发执行,所以前面的拼接方案更推荐。
内容的提问来源于stack exchange,提问作者KRISHNA I
相关产品推荐
相关产品推荐

