2011-08-04 9 views
-1

working with a big listこれは以下のリストを生成するこのプログラムに関する私の以前の投稿です。私が書いているプログラムは大きなリンクリストを扱っています。このリストはphonemeListと呼ばれます。リストには次のようなものです:あなたがプログラムについての考えを持つように一方のリストの項目と他方のリストの項目との比較はどちらも外側のリストにあります

[[('dh', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1,-1]]), 

    ("'", None), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]), 

    ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ("'", None), 

    ('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]), 

    ("'", None), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]]), 

    ('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]), 

    ('ng', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.09, 0.3], [-1, -1]]), 

    ("'", None), 

    ('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]), 

    ("'", None), 

    ('sh', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]), 

    ('eh', [[-1, -1], [-1, -1], [0.1, 0.5], [-1, -1], [0.4, 0.7], [-1, -1]]), 

    ('m', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ("'", None), 

    ('p', [[-1, -1], [0.2, 1.0], [-1, -1], [-1, -1], [0.15, 0.2], [-1, -1]]), 

    ('uw', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.5, 1.0]]), 

    ('dx', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.35], [-1, -1]]), 

    ("'", None), 

    ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ("'", None), 

    ('er', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.5], [-1, -1]]), 

    ("'", None), ('aa', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1,-1]]), 

    ("'", None), 

    ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ('iy', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.1, 0.15], [-1, -1]]), 

    ("'", None), 

    ('ih', [[-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [0.05, 0.15], [-1, -1]]), 

    ('n', [[-1, -1], [-1, -1], [-1, -1], [0.3, 1.0], [-1, -1], [-1, -1]]), 

    ('t', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.4], [-1, -1]]), 

    ('l', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.6], [-1, -1]]), 

    ("'", None), ('r', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15,0.6], [-1, -1]]), 

    ('ah', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 1.0], [-1, -1]]), 

    ('k', [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [0.15, 0.8], [-1, -1]])]] 

あなたは親切にリンクを見てでした。ありがとうございました。 [0.15,0.6]はリストではなく範囲です。ここでは間違っているかもしれないリストとして表現されています。これは、値が0.15から0.6まで変化できることを意味します。ここで、[-1、-1]は使用されていないノーレンジのものであり、比較の際に正の数の範囲で置き換えることができます。今、私は 'dh'の項目と 'ih'の項目を比較する必要があります。 'dh'の最初の項目は 'ih'の最初の項目と比較され、2番目の項目は2番目の項目と比較されます。次に 'dh'の項目は ''を無視する 'k'の項目と比較されます。 'dh'はすべてのルールに従います。それから、「私」が現れ、同じことが繰り返されます。これを実行している間( "'"、なし)、無視する必要があります。範囲は比較中に変更され、[-1、-1]が置き換えられます。 ( "'"、 "None")は境界のようなものです。すべてのアイテムを互いに比較した後、次のステップはこれらの境界内で比較することです。初心者であれば、これは本当に私にとっては複雑なことです。しかし、これも私の主なプロジェクトですので、これで私を助けてください。どうもありがとうございました。

+2

比較は何に基づいていますか? – miku

+2

これは恐ろしいコード貼りです –

+0

比較は、最初の音素 'dh'が 'ih'である次の音と比較されているようです。 dh ie [-1、-1]の最初の項目のような項目間の比較は、[-1、-1]であるihの最初の項目と比較されます。その後、2番目のアイテムと3番目のアイテムなど。比較する際には、いくつかのルールがあります。ルールの1つは、[-1、-1]は空きスロットのようなもので、+ ve番号の範囲で置き換えることができます。私は比較のすべてのルールも書いておくべきです。 – zingy

答えて

0

正に、ネストされたリストではなく、クラスが必要なように聞こえます。

class Phoneme(): 
    def __init__(self,named,variables,for,every,paired,value,in,the,crazy,list,you,posted): 
     self.named = named 
     self.variables = variables 
     ##etc 
     ##This way, we can see what you're comparing. The comparisons also become much easier. 

今、あなたの比較は、文字通りのようなものになります

if phoneme1.fricative == phoneme2.fricative: 
    do_something_awesome() 

ああクラスが混乱している場合、私はそれらの4つのチュートリアルは、クラスのかなりまともな説明をしているあなたにcheckouttheselinks.をお勧めしたいです。最後のものは公式のチュートリアルです。 Dive into Pythonはもう1つの優れた例ですが、すでに別のプログラミング言語を知っている人たちに向けられています。もしPythonが最初のものであれば、少し難しいかもしれません。

+0

ありがとうございます。私はクラスについて考えましたが、彼らは問題を解決しましたが、私はいつもクラスについて混乱しました。あなたは絶対に私はクラスが必要です。私はそれに取り組んで、私が得るところを見ます。 – zingy

+0

私はクラスの明確な例がある良いpythonチュートリアルへのリンクを提供するために私の答えを編集しました。私は、www.showmedo.comを含めるのを忘れていました。これには、Pythonのビデオチュートリアルがたくさんあります。 – Jonathanb

+0

ありがとうございます。それらを調べます。 – zingy

関連する問題