2017-11-14 4 views
0

ディクショナリテーブルで何も言わずに何も言わない適切な方法は何ですか?たとえばについては何も保持しない方法(辞書表で指定)

key11のために、私は.txt.docファイルを保ちます。 key12を指定し、すべてのファイルタイプを保持し、key13に何もフィルタタイプを保持しない(何も保持しない)ように指定するにはどうすればよいですか?

config = { 
    ' key11': {}, 
    ' key12': {}, 
    ' key13': {}, 
} 
config['key11']['files_to_keep'] = ('txt', 'doc') 
config['key12']['files_to_keep'] = ('"*"') 
config['key13']['files_to_keep'] =() 
+1

です。それが意味するように、辞書には何かを含めることができ、あなたは自由に値を解釈することができます。 – kazemakase

+1

命令として何を定義するかはあなた次第です。 '*'はすべてのことで広く知られています。何も保たないために、私は 'None'を保持するか、空の文字列' '' 'と言うでしょう。とにかく、この質問はあなたに主観的であり、正しい答えはありません。 – Vinny

答えて

2

代わりに動作するはずです。 たとえば、特定のファイルの終わりを除外するには、次のようにします。

文字列が既にそれを表しているため、追加のロジック(if文)を使用する必要はありません。

config = { 
    'key11': {}, 
    'key12': {}, 
    'key13': {}, 
} 

config['key11']['files_to_keep'] = ('txt', 'doc') # txt.doc 
config['key12']['files_to_keep'] = ('') # All 
config['key13']['files_to_keep'] = ('*') # None as strings don't end with * 


files = ['C:\\Users\\user\\Desktop\\Text1.txt', 
    'C:\\Users\\user\\Desktop\\Doc1.doc', 
    'C:\\Users\\user\\Desktop\\Img1.png'] 

キー11:

[i for i in files if i.endswith(config['key11']['files_to_keep'])] 

戻り値:

['C:\\Users\\user\\Desktop\\Text1.txt', 'C:\\Users\\user\\Desktop\\Doc1.doc'] 

12キーながら:

[i for i in files if i.endswith(config['key11']['files_to_keep'])] 

戻り値:

['C:\\Users\\user\\Desktop\\Text1.txt', 
'C:\\Users\\user\\Desktop\\Doc1.doc', 
'C:\\Users\\user\\Desktop\\Img1.png'] 

とキー13は、..あなたはそれらの値を継続して使用する方法に依存していることを空:)

関連する問題