获取字符串列表并将它们转换为元组列表

Taking a list of stings and converting them in to a list of tuples

我有一个字符串列表,我想将它们转换成一个元组列表。它们都有一个以 - b 结尾的时间前缀。我想将字符串转换为由时间 (header) 和数据 (tail) 组成的元组。

编辑:

我确实尝试将列表转换为列表列表:

for i in b:
   c.append(re.split(R,b[i]))

字符串示例: Sun Nov 17 04:38:17 +0000 2019 - b'RT <data> 我想要(时间,数据)的结果。

我的数据存储在 .txt 文件中,我正在使用 open()readlines() 提取数据。

如果时间以- b结束,那么您可以使用正常的str.split("- b")来获取零件。而且您必须 运行 循环

results = []

for line in all_lines:
    parts = line.split(' - b')
    results.append( parts )

或者如果你想修改time或者data

results = []

for line in all_lines:
    time, data = line.split(' - b')
    # ... here modify `time` or `data`
    results.append( [time, data] )

如果时间长度恒定,那么你可以使用 slice line[:30]

results = []

for line in all_lines:
    time = line[:30]
    data = line[30+4:]  # len(" - b") == 4
    results.append( [time,data] )

最小工作示例

all_lines = [
    "Sun Nov 17 04:38:17 +0000 2019 - b'RT  <data>",
    "Sun Nov 18 05:38:17 +0000 2020 - b'RT  <data>",
    "Sun Nov 19 06:38:17 +0000 2021 - b'RT  <data>",
]

results = []

for line in all_lines:
    #time, data = line.split(' - b')
    #results.append( [time, data] )

    #parts = line.split(' - b')
    #results.append( parts )
    
    time = line[:30]
    data = line[30+4:]  # len(" - b") == 4
    results.append( [time,data] )
    
# ---

#print(results)

for item in results:
    print(item)

结果:

['Sun Nov 17 04:38:17 +0000 2019', "'RT  <data>"]
['Sun Nov 18 05:38:17 +0000 2020', "'RT  <data>"]
['Sun Nov 19 06:38:17 +0000 2021', "'RT  <data>"]