-1

私はPythonプログラミングが初めてです..誰かが次のことを行う方法を提案できますか:

データ全体がファイルに保存され、. そして、私はシーケンスを乱すことはできません。

チェーンの最初と最後のノードを抽出したいのですが、このようなチェーンがいくつかあります。また、データの内容はギガバイト単位です。

Pythonでそれを行う方法についてはわかりません。誰かが親切に助けてくれますか。

4

2 に答える 2

1

シーケンスがどのように機能するか、特に開始要素と終了要素がどのように選択されるかは正確にはわかりません。つまり、基本的には、開始値を設定し、それを一度一致させた後、同じ値を何度も見つけようとします。

まず、データのジェネレーターを作成しました。あなたが言ったように、あなたはかなりの量のデータを持っているので、おそらくあなたはラインのためのある種のシーケンシャルジェネレーターを持っているでしょう。静的ジェネレーターを使用して、例の行を生成してエミュレートしました。

>>> def dataReader():
        yield 'a1=hi'
        yield 'b1=hello'
        yield 'a1=how'
        yield 'b1=to'
        yield 'a1=hello'
        yield 'b1=python'
        yield 'a1=format'
        yield 'b1=computer'
        yield 'a1=python'
        yield 'b1=good programming language'

次に、結果と、開始値に初期化される最後の要素を保持する空のリストを設定します

>>> lst = []
>>> last = 'hi' # as we want to begin with 'hi' which does not have a duplicate?

次に、データを調べ、等号で分割して、最後の値を比較します。None前の値がすでに重複を検出したことを示すために値を使用しています。少し簡単にするためにkey、今のところ完全に無視しますが、新しい値と一致するときに前のキーが現在のキーと異なることを確認する必要がある場合は、条件を簡単に追加できます。

>>> for line in dataReader():
        key, value = line.split('=')
        if last == None:
            lst.append(line)
            last = value
        elif last == value:
            lst.append(line)
            last = None
>>> lst
['a1=hi', 'b1=hello', 'a1=hello', 'b1=python', 'a1=python', 'b1=good programming language']
于 2012-06-17T14:17:29.973 に答える
0

などの「リスト」とは何かを調べることから始めます。

data[0]=hi
data[1]=hello
data[2]=how
data[3]=to
data[4]=hello
data[5]=python
data[6]=format
data[7]=computer
data[8]=python
data[9]=good programming language

また

データに応じて、多次元リスト。

data[0][0]=hi
data[0][1]=hello
data[0][2]=how
data[0][3]=to

data[1][0]=hello
data[1][1]=python
data[1][2]=format
data[1][3]=computer
data[1][4]=python
data[1][5]=good programming language
于 2012-06-17T14:09:28.950 に答える