Python打印字符串列表时如何去除末尾多余的逗号?
如何去除Python输出末尾的多余逗号?
问题代码
houses = ['C', 'D', 'H', 'S'] ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K'] deck = [] for house in houses: for rank in ranks: deck.append(f"{rank}-{house}") for i in range(13): print(deck[i], end=",")
期望输出
A-C,2-C,3-C,4-C,5-C,6-C,7-C,8-C,9-C,10-C,J-C,Q-C,K-C
实际问题
运行上述代码后,输出末尾会多一个不必要的逗号:
A-C,2-C,3-C,4-C,5-C,6-C,7-C,8-C,9-C,10-C,J-C,Q-C,K-C,
解决方法
方法1:用str.join()拼接后打印
这是最简洁的方式,直接将目标元素用逗号连接成单个字符串再输出,不会产生末尾多余符号:
houses = ['C', 'D', 'H', 'S'] ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K'] deck = [] for house in houses: for rank in ranks: deck.append(f"{rank}-{house}") # 取前13个元素,用逗号连接后打印 print(','.join(deck[:13]))
方法2:循环内判断是否为最后一个元素
通过索引判断当前元素是不是最后一个,仅在非末尾元素后添加逗号:
houses = ['C', 'D', 'H', 'S'] ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K'] deck = [] for house in houses: for rank in ranks: deck.append(f"{rank}-{house}") for i in range(13): if i == 12: # range(13)的最后一个索引是12 print(deck[i], end="") else: print(deck[i], end=",")
方法3:利用print()的sep参数
将目标元素解包后传入print(),用sep指定分隔符,天然不会在末尾生成多余符号:
houses = ['C', 'D', 'H', 'S'] ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K'] deck = [] for house in houses: for rank in ranks: deck.append(f"{rank}-{house}") # 解包前13个元素,用逗号分隔输出 print(*deck[:13], sep=",")
内容的提问来源于stack exchange,提问作者mama b
相关产品推荐
相关产品推荐

