ファイル入力からデータを処理しようとしています。 1行に3つの値が空白で区切られています。私は2番目の値でグループ化されるリストにそれらを追加しようとしています。そう、私は入力があります。Python - 1つの要素でリストをグループ化する
qwe rty 12
asd fgh 34
zxc rty 96
をし、私はそれがこのような変数に格納したい:
variable =
[[[qwe, rty, 12], [zxc, rty, 96]],
[[asd, fgh, 34]]]
私はこのようにアクセスできるように、これは次のとおりです。
variable[0] #this should be [[qwe, rty, 12], [zxc rty, 96]]
variable[1] #this should be[[asd, fgh, 34]]
私は努力しています
f = open('input_1.txt')
values = [] #to keep track of which values have occured before
data = []
for line in f:
ldata = lineprocess(line) #this transforms the raw data to [qwe, rty, 12] etc.
if ldata[1] in values:
data[values.index(ldata[1])].append(ldata)
elif ldata[1] not in values :
values.append(ldata[1])
data.append(ldata)
これは、しかし、このようなリストを回す:
[['qwe', 'rty', 12, ['zxc', 'rty', 96]],
['asd', 'fgh', 34]]
は、私が代わりに
[[['qwe', 'rty', 12], ['zxc', 'rty', 96]],
[['asd', 'fgh', 34]]]
を取得するために何をすべき?
これは非常に奇妙なデータ構造です。あなたは何を正確に作りようとしていますか?代わりにこのデータを参照しやすくするために辞書を使うことを考えましたか? – idjaw
私が必要とする主なものは、データをグループ化することです。だから私は3つの値のリストを持っている入力ファイルから、これをトリプルと呼んでみましょう。同じインデックスの下で同じ中間値を持つトリプルを持つようにグループ化したいので、別のプロセスに言うことができます。つまり、インデックス0のすべてのトリプルと次のトリプルを処理する必要がありますプロセスはインデックス1などの下ですべてのトリプルを使用する必要があります –