如何在Python中打印不带括号逗号的列表,实现元素逐行输出
问题分析
你当前的输出不符合预期有两个核心原因:
- 你直接打印了列表对象:Python输出列表时会默认带上方括号、元素的引号、逗号这些列表语法标识,自然不是你要的纯数值格式。
- 你尝试用
print(*tslist, sep=",")时指定了逗号作为分隔符,自然不会实现每行一个的效果。
另外你的切片写法param[3:-1]存在隐患:如果ts参数的位置变化、或者数值长度变化,很容易切错内容,建议用拆分等号的方式取值更稳妥,用`startswith("ts=")判断也比直接判断"ts=" in param更精准,避免其他参数值里包含ts=字符导致误匹配。
解决方法
逐行输出(不需要先收集全量数据的场景)
with open(inputt, "r") as f1: for line in f1: line = line.strip() if not line: continue exp = line.split("\t")[3] params = exp.split("|") for param in params: if param.startswith("ts="): # 按=拆分直接取第二部分,不需要手动切下标 ts_val = param.split("=", 1)[1] print(ts_val) break
收集全量后排序输出(适合你后续做文件比对的场景)
ts_list = [] with open(inputt, "r") as f1: for line in f1: line = line.strip() if not line: continue exp = line.split("\t")[3] params = exp.split("|") for param in params: if param.startswith("ts="): ts_list.append(param.split("=", 1)[1]) break # 排序后逐行输出 for ts in sorted(ts_list): print(ts)
如果你要保留你原有的列表写法,只修改打印逻辑
把print(extraparamts)改成print(*extraparamts, sep="\n")即可,拆包列表元素的时候用换行符作为分隔符,就不会输出逗号、括号和引号了。
内容的提问来源于stack exchange,提问作者tryingToDevelopMyself
相关产品推荐
相关产品推荐

