【问题标题】:How to print a list without brackets and commas如何打印不带括号和逗号的列表
【发布时间】:2026-01-19 11:25:01
【问题描述】:

我有一个文件,

6802496011442316593 1625090609  51048468525236  aaa=1111|bbbb=15|cccc=216|dddd=1625090604|eeee=5|ffff=12000|ggg=brtnrn=|hhhh=4|ii=lfp|ts=1625090609
6802496011442316593 1625090609  51048468525236  aaa=1111|bbbb=15|cccc=216|dddd=1625090604|eeee=5|ffff=12000|ggg=brtnrn=|hhhh=4|ii=lfp|ts=1625090489
6802496011442316593 1625090609  51048468525236  aaa=1111|bbbb=15|cccc=216|dddd=1625090604|eeee=5|ffff=12000|ggg=brtnrn=|hhhh=4|ii=lfp|ts=1625090549
6802496011442316593 1625090609  51048468525236  aaa=1111|bbbb=15|cccc=216|dddd=1625090604|eeee=5|ffff=12000|ggg=brtnrn=|hhhh=4|ii=lfp|ts=1625090599
6802496011442316593 1625090609  51048468525236  aaa=1111|bbbb=15|cccc=216|dddd=1625090604|eeee=5|ffff=12000|ggg=brtnrn=|hhhh=4|ii=lfp|ts=1625090599

我从中提取最后一个元素“ts=1625090609”,没有“ts=":

with open(inputt, "r") as f1:
    for line in f1:
        exp=(line.split("\t")[3])
        params=(exp.split("|"))
        extraparamts=list()
        for param in params:
            if "ts=" in param:
                extraparamts.append(param[3:-1])
        print(extraparamts)   

列出:

['1625090429']
['1625090489']
['1625090549']
['1625090599']
['1625090599']

我想在不带括号和逗号的单独行中将其打印在输出中,如下所示:

1625090429
1625090489
1625090549
1625090599
1625090599

只是为了更容易排序和比较相同的文件,而不是排序文件。不幸的是,似乎

print(*tslist, sep=",")   

对我不起作用。你能告诉我我做错了什么吗?我已经尝试过 itertools 和

【问题讨论】:

  • 为什么要创建列表列表?目前,您在该内部列表中只有零个或一个元素,那么它有什么实际用途吗?
  • 是的,你是对的,菜鸟的错误,我已经改了。谢谢!

标签: python list


【解决方案1】:

试试:

print(*tslist[0].splitlines(), sep="\n")   

【讨论】:

  • 在单独的行中给出输出数字,但使用 [""]。有没有机会摆脱['']?
  • @PublicQuip 已编辑我的答案现在应该可以工作了。
  • 不幸的是没有任何改变:(相同的输出
  • @PublicQuip print(tslist) 输出什么?
  • [['1625090429'],['1625090489'],['1625090549'],['1625090599'],['1625090599']]
【解决方案2】:

根据您的编辑编辑答案,添加正则表达式

import re

extraparamts = []
with open(inputt, "r") as f1:  
    f1 = f1.read()
    for line in f1.splitlines():  # you can ignore splitlines if your data does not require it
        if "ts" in line:
            matches = re.findall("ts.*", line)
            extraparamts.append(str(matches)[5:-5])
            
    

for data in extraparamts:
    print(data)

会给予

1625090
1625090
1625090
1625090
1625090

【讨论】:

  • 好的,但我的列表不同 - 我已经编辑了帖子。
  • 是的,伙计,非常感谢!只需要将 extraparamts.append(str(matches)[5:-5]) 更改为 extraparamts.append(str(matches)[5:-2])。现在我必须处理因更大文件而耗尽的内存。再次感谢!
【解决方案3】:

对于列表

试试这个:

list = ['1625090429','1625090489','1625090549','1625090599','1625090599']
for item in list:
    print(item)

输出:

1625090429
1625090489
1625090549
1625090599
1625090599

对于列表中的列表

试试这个:

list = [['1625090429'],['1625090489'],['1625090549'],['1625090599'],['1625090599']]
for item in list:
    for x in item:
        print(x)

输出:

1625090429
1625090489
1625090549
1625090599
1625090599

【讨论】:

  • 好的,但我的列表不同 - 我已经编辑了帖子。
最近更新 更多