次のようなタプルがあります。
('1 2130 0 279 90 92 193 1\n', '1 186 0 299 14 36 44 1\n')
そして、各列が別々になるように分割して、簡単にアクセスできるようにしたいと思います。
たとえば、次のようになります。
tuple[0][2]
戻るだろう0
tuple[1][3]
戻るだろう299
私の質問の2番目の部分は、何に相当する.rstrip()
ので、私は取り除くことができます\n
次のようなタプルがあります。
('1 2130 0 279 90 92 193 1\n', '1 186 0 299 14 36 44 1\n')
そして、各列が別々になるように分割して、簡単にアクセスできるようにしたいと思います。
たとえば、次のようになります。
tuple[0][2]
戻るだろう0
tuple[1][3]
戻るだろう299
私の質問の2番目の部分は、何に相当する.rstrip()
ので、私は取り除くことができます\n
リスト内包表記を使用できます。
rows = [row.split() for row in your_tuple]
に関しては.rstrip()
、必要ありません。.split()
(引数なしで!)それを処理します:
>>> ' a b c \t\n\n '.split()
['a', 'b', 'c']
あなたはしたくないsplit()
かrstrip()
、タプル。タプル内のものは文字列であり、これらは完全に分割および削除可能であるため、タプル内の各文字列にこれらの操作を簡単に適用する方法が必要です。rstrip()
(実際には、 が改行を処理してくれるので、 は必要ありませんsplit()
。) ここで、リスト内包表記の出番です。
data = ('1 2130 0 279 90 92 193 1\n', '1 186 0 299 14 36 44 1\n')
data = [x.split() for x in data]
これで、タプル (およびその要素) がリストになります。ほとんどの場合これで問題ありませんが、リストではなくタプルにする必要がある場合は、次のようにしてください。
data = tuple(tuple(x.split()) for x in data)
str.split
タプルの各項目に適用:
>>> tup = ('1 2130 0 279 90 92 193 1\n', '1 186 0 299 14 36 44 1\n')
>>> t = map(str.split, tup)
>>> t
[['1', '2130', '0', '279', '90', '92', '193', '1'], ['1', '186', '0', '299', '14', '36', '44', '1']]
>>> t[0][2]
'0'
>>> t[1][3]
'299'
>>> data = ('1 2130 0 279 90 92 193 1\n', '1 186 0 299 14 36 44 1\n')
>>> [x.split() for x in data]
[['1', '2130', '0', '279', '90', '92', '193', '1'],
['1', '186', '0', '299', '14', '36', '44', '1']]
整数値が必要な場合:
>>> [[int(y) for y in x.split()] for x in data]
[[1, 2130, 0, 279, 90, 92, 193, 1], [1, 186, 0, 299, 14, 36, 44, 1]]
>>> res = [[int(y) for y in x.split()] for x in data]
>>> res[0][1]
2130