您可以在列表推导式中使用生成器表达式:
a = ["0:start:0","1:start:2","1:end:5","0:end:6"]
b = [[int(x[0]), x[1], int(x[2])] for x in (item.split(":") for item in a)]
print(b)
Run Code Online (Sandbox Code Playgroud)
输出:
[[0, 'start', 0], [1, 'start', 2], [1, 'end', 5], [0, 'end', 6]]
Run Code Online (Sandbox Code Playgroud)
我的回答受到启发:列表理解拆分循环变量
为了清楚起见,我会这样做,分两步:
logs = ["0:start:0", "1:start:2", "1:end:5", "0:end:6"]
split_logs = (log.split(':') for log in logs)
result = [(int(a), b, int(c)) for a, b, c in split_logs]
Run Code Online (Sandbox Code Playgroud)