如何在单循环中遍历列表打印元素并去除末尾逗号(不用join)
解决循环打印逗号分隔元素时的末尾逗号问题
给你几个只用循环实现的方案,都能去掉多余的末尾逗号:
方案一:先打第一个元素,后续元素前置逗号
思路是先输出第一个元素(不带前置逗号),之后的每个元素都先输出, 再输出元素,从根源上避免末尾出现逗号:
grades = [['A1', 12], ['A2', 18], ['A3', 20], ['A4', 19]] # 先判断列表非空,防止空列表时索引报错 if grades: # 打印第一个元素,不添加末尾符号 print(grades[0][0], end='') # 遍历从第二个开始的所有元素 for item in grades[1:]: # 先输出逗号加空格,再输出元素 print(', ' + item[0], end='') # 最后换行,让输出更规范 print()
运行结果:
A1, A2, A3, A4
方案二:判断当前元素是否为最后一个
通过enumerate获取元素的索引,每次打印时判断是不是最后一个元素:如果是就直接打印,不是就带, 结尾:
grades = [['A1', 12], ['A2', 18], ['A3', 20], ['A4', 19]] for idx, item in enumerate(grades): if idx == len(grades) - 1: # 最后一个元素,直接打印,不带结尾符号 print(item[0], end='') else: # 非最后一个元素,结尾用逗号加空格 print(item[0], end=', ') print()
运行结果和上面一致。
方案三:循环拼接字符串后打印
先通过循环把所有要输出的元素拼接成完整字符串,最后一次性打印,本质是用循环模拟join的逻辑:
grades = [['A1', 12], ['A2', 18], ['A3', 20], ['A4', 19]] result = '' for idx, item in enumerate(grades): if idx == 0: result += item[0] else: result += ', ' + item[0] print(result)
内容的提问来源于stack exchange,提问作者Joshua Ayitevie
相关产品推荐
相关产品推荐

