1

非常に素朴な質問ですが、次のことを行うための堅牢な方法またはより良い方法はありますか。実際にはjsonとは何の関係もないとしましょう。

リストがあるとしましょう(ファイルからの読み取り)

string_list = [ "foo",1,None, "null","[]","bar"]

さて、null and []本質的にnullと同等ですが、データ構造が異なれば「なし」の解釈も異なりますか?? 右?

したがって、これらすべてのルールの正規表現を書くのではなく、「null」、「[]」などをNoneに変換するより良い方法はありますか.. ??

ありがとう

4

3 に答える 3

2

置換する値のセットを定義し、Noneリスト内包表記を使用してそれらを「置換」します。

>>> string_list = [ "foo",1,None, "null","[]","bar"]
>>> none_items = {"null", "[]"}  # or set(("null", "[]"))
>>> [None if item in none_items else item for item in string_list]
['foo', 1, None, None, None, 'bar']

または、次を使用しますmap()

>>> map(lambda x: None if x in none_items else x, string_list)
['foo', 1, None, None, None, 'bar']

setO(1) ルックアップのために使用します。

于 2013-09-17T22:39:14.220 に答える
1

あなたは試すことができます:

string_list = [ "foo",1,None, "null","[]","bar"]
nones = [ "null", "[]" ]
print([None if s in nones else s for s in string_list])
于 2013-09-17T22:40:03.123 に答える