2012-02-09 5 views
-2

したがって、たとえば配列[1,2,3]を持っていれば、 subseqeunces:シーケンスのサブシーケンスの作成方法[1,2,3] Pythonの非隣接部分列(例:[1,3])を含まない

[1] 
[2] 
[3] 
[1,2] 
[2,3] 
[1,2,3] 

なく

[1,3] 

[3,2] 

私は、これらのユニークなサブを検索した結果とともに、辞書のキーとしてこれらを挿入するために望んでいます値を形成するデータベースを設定します。あなたがそれを手助けできるかどうか疑問に思いますか?

ありがとうございました!

+6

「隣接」という概念がある場合は、* set *ではなく* sequence *であり、必要なものは* subsequences *です。 – AakashM

+1

[1,3]を除外するルールは何ですか? []を除外すべきルールは何ですか? ** sets **について話しているので、あなたはなぜ[2,3]を含めるが[3,2]を除外するのはなぜ同じセットであるのか? –

+0

@AakashM Understoodは、質問を変更します。説明をありがとう – user1195889

答えて

3
>>> x = [1, 2, 3] 
>>> [x[a:b + 1] for a in range(len(x)) for b in range(a, len(x))] 
[[1], [1, 2], [1, 2, 3], [2], [2, 3], [3]] 

またはそれらを得るためにあなたが要求したために:

>>> [x[a : a + n] for n in range(1, len(x) + 1) 
        for a in range(0, len(x) - n + 1)] 
[[1], [2], [3], [1, 2], [2, 3], [1, 2, 3]] 

私は、あなたは

辞書でキーとしてこれらを挿入するために望んでいます辞書はそのキーがハッシュ可能である必要があり、ハッシュリストはできないため、リストをキーのリストとして使用することはできません。

>>> {[1] : 'foo'} 
Traceback (most recent call last): 
    File "<pyshell#16>", line 1, in <module> 
    {[1] : 'foo'} 
TypeError: unhashable type: 'list' 

代わりにキーとしてタプルを使用する必要があります。

+0

それはかなり素晴らしいです、ありがとう。それらをキーとして辞書に入れることをアドバイスできますか? – user1195889

+0

@ user1195889:リストをタプルに変換するには、 'tuple(your_list)'を呼び出します。値は何になりますか?辞書を作成するには、辞書の理解を使用することができます。 –

+0

ありがとう、私はそうだったと思った。それらを配列に入れることは可能ですか?それはリストのリストで構成されますか? – user1195889

関連する問題