0
my_list = ['1\tMelkor\tMorgoth\tSauronAtDolGoldul','2\tThingols\tHeirIsDior\tSilmaril','3\tArkenstone\tIsProbablyA\tSilmaril']

我正在尝试将此列表拆分为由 \t 分隔的子列表

output = [['1','Melkor','Morgoth','SauronAtDolGoldul'],['2','Thigols','HeirIsDior','Silmaril'],['3','Arkenstone','IsProbablyA','Silmaril']]

我在想一些事情

output = []
for k_string in my_list:
    temp = []
    for i in k_string:
        temp_s = ''
        if i != '\':
            temp_s = temp_s + i
        elif i == '\':
            break
        temp.append(temp_s)

它弄乱了 t 。. 我不知道我会怎么做。我见过人们将 .join 用于类似的事情,但我并不真正了解如何使用 .join

4

2 回答 2

4

你想用str.split(); 列表推导可让您将其应用于一行中的所有元素:

output = [sub.split('\t') for sub in my_list]

字符串中没有文字\;the\t是一个转义码,表示制表符。

演示:

>>> my_list = ['1\tMelkor\tMorgoth\tSauronAtDolGoldul','2\tThingols\tHeirIsDior\tSilmaril','3\tArkenstone\tIsProbablyA\tSilmaril']
>>> [sub.split('\t') for sub in my_list]
[['1', 'Melkor', 'Morgoth', 'SauronAtDolGoldul'], ['2', 'Thingols', 'HeirIsDior', 'Silmaril'], ['3', 'Arkenstone', 'IsProbablyA', 'Silmaril']]
于 2013-06-04T22:16:07.857 回答
1
>>> import csv
>>> my_list = ['1\tMelkor\tMorgoth\tSauronAtDolGoldul','2\tThingols\tHeirIsDior\tSilmaril','3\tArkenstone\tIsProbablyA\tSilmaril']
>>> list(csv.reader(my_list, delimiter='\t'))
[['1', 'Melkor', 'Morgoth', 'SauronAtDolGoldul'], ['2', 'Thingols', 'HeirIsDior', 'Silmaril'], ['3', 'Arkenstone', 'IsProbablyA', 'Silmaril']]
于 2013-06-04T22:22:34.247 回答