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(); リスト内包表記を使用すると、これを 1 行のすべての要素に適用できます。

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

\文字列にリテラルはありません。これ\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 に答える