首页 > 解决方案 > 是否可以使用列表理解转换代码

问题描述

我正在尝试将显示转换为列表的内容,以便每行仅打印三个元素,并且能够使用 if/else 编写以下代码,该代码按预期工作..

lst = ["s1","s2","s3","s4","s5","s6","s7","s8"]

cnt=0
var4=""

for i in range(len(lst)):
    if (cnt%3) == 0:
        var4 = var4 + "\n" + lst[i]
    else:
        var4 = var4 + ", " + lst[i]
    cnt +=1 
    
print(var4)

输出:

s1, s2, s3
s4, s5, s6
s7, s8

尝试使用 List Comprehension 或其他一些有效的可能方式来查找是否可以实现相同的结果。

谢谢..!!

标签: pythonlistlist-comprehension

解决方案


不确定这是否是您正在寻找的,但这是一个使用列表理解和join.

lst = ["s1","s2","s3","s4","s5","s6","s7","s8"]

block_size = 3

lines = [", ".join(lst[i:min(len(lst), i + block_size)]) for i in range(0, len(lst) + block_size, block_size)]

print("\n".join(lines))

推荐阅读