1
[k + v for k,v in namedtuple]
私が感じるようにnamedtuplesを理解するために、私はこの使用してasDictための簡単なマップ機能を記述したが内包表記のためのものについてはできるように/マッピングするための簡単な方法があります。
[k + v for k,v in namedtuple]
私が感じるようにnamedtuplesを理解するために、私はこの使用してasDictための簡単なマップ機能を記述したが内包表記のためのものについてはできるように/マッピングするための簡単な方法があります。
リストの理解を使用するために名前付きタプルのデータがどのように見えるかをもう少し知る必要があります。
また、より広範な方法は、ネストされたデータ構造を展開する再帰関数を使用することです:
def reducer(obj):
if isinstance(obj, dict):
return {key: reducer(value) for key, value in obj.items()}
elif isinstance(obj, list):
return [reducer(value) for value in obj]
elif isnamedtupleinstance(obj): # see note
return {key: reducer(value) for key, value in obj._asdict().items()}
elif isinstance(obj, tuple):
return tuple(reducer(value) for value in obj)
else:
return obj
注:あなたがしている場合はnamedtupleが他のnamedtuplesが含まれていますが、彼らはそうcheck for instances of namedtuplesに、このヘルパーメソッドが必要になります実際のタプルと誤認されることはありません:
def isnamedtupleinstance(x):
_type = type(x)
bases = _type.__bases__
if len(bases) != 1 or bases[0] != tuple:
return False
fields = getattr(_type, '_fields', None)
if not isinstance(fields, tuple):
return False
return all(type(i)==str for i in fields)