Python:将String拆分为列表列表

时间:2015-05-11 14:08:49

标签: python string list

我有一个像"2 2, 2 5, 3 1; 3 3, 4 4, 1 6; 1 1, 4 0;"这样的字符串。 ;将字符串划分为4个大块,下一个层次是,,最后一个是空格。 我的目标是将字符串拆分为列表列表但我被卡住了。这是我的代码。

S = "2 2, 2 5, 3 1; 3 3, 4 4, 1 6; 1 1, 4 0;"
T = [elem.strip() for elem in S.split(";")]
U = []
V = []

for i in range(0,len(T)):
    U.append([elem.strip() for elem in T[i].split(',')])

for i in range(0,len(U)):
    for j in range(0,len(U[i])):
        V.append(U[i][j].split())

print("S = ", S)
print("U = ", U)
print("V = ", V)

输出:

S =  2 2, 2 5, 3 1; 3 3, 4 4, 1 6; 1 1, 4 0;
T =  ['2 2, 2 5, 3 1', '3 3, 4 4, 1 6', '1 1, 4 0', '']
U =  [['2 2', '2 5', '3 1'], ['3 3', '4 4', '1 6'], ['1 1', '4 0'], ['']]
V =  [['2', '2'], ['2', '5'], ['3', '1'], ['3', '3'], ['4', '4'], 
     ['1', '6'], ['1', '1'], ['4', '0'], []]

V不是我想要的。我希望['2', '2'], ['2', '5'], ['3', '1']包含在单独的列表中(其他列表也是如此)。

我错过了什么?

奖金问题:该字符串表示一个图表,其中由;分隔的地点代表一个节点,由,分隔的地方代表由邻居节点数和距离代表的邻居(由空格)
有没有更好的方法将该图存储在原始数据类型中而不构建类?

1 个答案:

答案 0 :(得分:2)

使用嵌套理解进一步分裂:

V = [[map(int, j.split()) for j in i.split(',')] for i in s.split(';')]