如何用for循环去除列表元素的括号并逐个打印?
遍历组合元组并格式化输出解决方案
错误原因分析
你在循环里犯了一个基础错误:for i in combos中的i是combos列表里的元组元素(比如(1,2,3)),而非索引值。列表只能用整数作为索引,用元组i去取combos[i]自然会抛出TypeError。
修正后的代码(基础版)
直接遍历元组元素并处理即可:
import itertools number = 9 k = 3 n = range(1, number) combos = list(itertools.combinations(n, k)) for combo in combos: # 直接对元组转字符串后去除括号 print(str(combo).strip('()'))
更优雅的实现方式(推荐)
不依赖字符串截取,而是将元组元素转为字符串后用逗号拼接,这种方法更稳定,避免特殊字符干扰:
import itertools number = 9 k = 3 n = range(1, number) combos = list(itertools.combinations(n, k)) for combo in combos: # 将元组内每个数字转字符串,再用逗号连接 print(','.join(map(str, combo)))
两种写法都能输出你需要的格式:
1,2,3 1,2,4 1,2,5 ...
内容的提问来源于stack exchange,提问作者cat_herder
相关产品推荐
相关产品推荐

