2016-12-21 3 views
0

項目を返します。'1;Paul;Crowe;28;male;2\n'パイソンプリントアイテムは、改行記号にのみ

コード:

f = open('data.txt', 'r+').readlines() 

l = len(f) 

data = {} 
friends = {} 

for i in range(0,l): 
    person = f[i].split(';') 
    friend = f[i][-1] 
    data.update({person[0]:person[1:]}) 
    friends.update({osoba[0]:friend}) 

print friends 

そしてプリントの出力:それをしない理由を私は理解していない

{'11': '\n', '10': '\n', '13': '\n', '12': '\n', '15': '\n', '14': '\n', '17': '\n', '16': '\n', '19': '\n', '18': '\n', '20': '\n', '1': '\n', '3': '\n', '2': '\n', '5': '\n', '4': '\n', '7': '\n', '6': '\n', '9': '\n', '8': '\n'} 

代わりに '2 \ n'文字列を返します。 何が問題だと思われますか?

答えて

2

friend = f[i][-1]の行で、ファイルのi番目の行の最後の文字を取得しているため、'\n'が返されます。その最後の文字は'\n'です。あなたがしたいことは、次のようなものだと思います。

friend = f[i].split(';')[-1] # This will return 2\n 
+0

うわー、それはとても分かりました。私はそれについても考えませんでした。ありがとうございます! –

関連する問題