listA=[A,B,C,D,E] listB=[[A,a],[A,b],[C,c],[C,d],[C,e]]
上のようにlistA,listBがあります。
次のようにfor文で返したいのですが、
dicted = OrderedDict() for tit in listA: for s,t in listB: if s==tit: dicted.setdefault(tit, []).append(t) else
辞書に格納する際の条件指定としてelse
以降に
listBの[0]がlistAと合致しない場合'Nan'を挿入する
を指定して結果的に下記のような辞書を作成したいのですが
dic={A:a, B:'Nan', C:c, D:'Nan', E:'Nan'}
else以降の条件指定はどのようにすれば良いでしょうか?
setdefault(tit, []).append(t)→参考
追記
listC=[[A,a],[A,b],[C,c],[C,d],[C,e]]
listD=[[A,a],[A,b],[C,c],[C,d],[C,e]]
....listN
上記のようにlist(同じ長さ、要素の中身は違う)がNこあるとします
回答してもらった内容をfor文で全てのlistに適用し、pandasのDataframeで
listA
listB
...
listN
の形の行列を作りたいですが、下記のコードではうまくいきませんでした。
listed=[] dicted = OrderedDict(zip(listA, ['NaN'] * len(listA))) for i in range(5): for s, t in list_frame.iloc[i:,:]: if dicted[s] == 'NaN': dicted[s] = t listed.append(dicted)
for文で全てのlistに適用する方法を教えていただけないでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。