Wczytywanie z pliku danych

0

Cześć mam w pliku "dane.txt" liczby oddzielone tabulatorem (1 2 3 4 5 6) i chciałbym je zapisać do trzech list tak żeby było a=[1,4] b=[2,5] c=[3,6] mam coś takiego ale niestety jak printuje to do list nic się nie zapisuje. Wiecie może co należy poprawić ?

p=open('dane.txt','r')

d=p.readlines()
p.close()
a=[]
b=[]
c=[]
for i in d[1:]:
    k0=i.split('\t')[0]
    a.append(float(k0))
    k1=i.split('\t')[1]
    b.append(float(k1))
    k2=i.split('\t')[2]
    c.append(float(k2))
print(d)
print(a)
print(b)
print(c)
1

Moja propozycja

SPLITS = 3
SEPARATOR = " "

with open('dane.txt','r') as p:
    d = p.readlines()

a=[[] for _ in range(SPLITS)]

for line in d[1:]:
    numbers = list(map(float, line.split(SEPARATOR)))
    for i in range(SPLITS):
        a[i].extend(numbers[i::SPLITS])
        
print(d)
for i in range(SPLITS):
    print(a[i])
>type dane.txt

1 2 3 4 5 6
3 4 5 6 7 8 9
10 11 12 13 14

>c:\Python33\python p2.py
['\n', '1 2 3 4 5 6\n', '3 4 5 6 7 8 9\n', '10 11 12 13 14\n']
[1.0, 4.0, 3.0, 6.0, 9.0, 10.0, 13.0]
[2.0, 5.0, 4.0, 7.0, 11.0, 14.0]
[3.0, 6.0, 5.0, 8.0, 12.0]
0

wystarczy zmienić

SEPARATOR = "\t"
>c:\Python33\python.exe p2.py
['\n', '1\t2\t3\t4\t5\t6\n', '3\t4\t5\t6\t7\t8\t9\n', '10\t11\t12\t13\t14\n']
[1.0, 4.0, 3.0, 6.0, 9.0, 10.0, 13.0]
[2.0, 5.0, 4.0, 7.0, 11.0, 14.0]
[3.0, 6.0, 5.0, 8.0, 12.0]

1 użytkowników online, w tym zalogowanych: 0, gości: 1