python - 是否可以使用列表理解转换代码
问题描述
我正在尝试将显示转换为列表的内容,以便每行仅打印三个元素,并且能够使用 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 或其他一些有效的可能方式来查找是否可以实现相同的结果。
谢谢..!!
解决方案
不确定这是否是您正在寻找的,但这是一个使用列表理解和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))
推荐阅读
- python-3.x - 使用 Pygames 播放多个音频
- c# - c# 表示泛型成员的可空性
- python - 规避 Selenium 中的陈旧元素异常
- html - Java#Selenium:如何获取没有 tr/td 且只有 div 标签的动态 div 表中的所有单元格值?
- python - Python取消选中复选框
- r - 如何创建一个计数器,将重复分组为相同的值,同时忽略 NA
- javascript - 在 JavaScript 中打印钻石的来源是什么?
- loops - 计算 if 循环 SPSS
- python - 检查给定范围之间的条件
- python - 切换到 Pygame 全屏模式只能工作一次