リストの長さが合わないです。
#coding:utf-8 A = [] B = [] data =[[["Where","is","Mary"],["Bathroom","is"]],[["Bob","is","23"],["Oh"]]] for i in range(len(data)): tmp1 = [] for j in range(len(data[i])): for k in range(len(data[i][j])): tmp1.append(data[i][j][k]) A.append(tmp1) for i in range(len(data)): tmp2 = [] for j in range(len(data[i])): if j == 0: for k in range(len(data[i][j])): tmp2.append(data[i][j][k]) B.append(tmp2) print(len(A)) print(len(B))
とコードを書いて実行すると、
4 2
と出力されました。
しかし、理想のアウトプットはAとBの長さを2にしたいです。なので、Aが余計にforループ回っていることになります。
長さの2はどこからきているかというと、
[["Where","is","Mary"],["Bathroom","is"]]
や
[["Bob","is","23"],["Oh"]]
の配列の長さが2であることからきています。
なのでtmp1には、まず
["Where","is","Mary","Bathroom","is"]
が入って、次にtmp1に
["Bob","is","23","Oh"]
が入り、Aには
[["Where","is","Mary","Bathroom","is"],["Bob","is","23","Oh"]]
という形にしたいです。
tmp2には、まず
["Where","is","Mary"]
が入って、次にtmp2に
["Bob","is","23"]
が入り、Bには
[["Where","is","Mary"],["Bob","is","23"]]
という形にしたいです。
なぜ、意図した挙動にならないのでしょうか?
回答1件
あなたの回答
tips
プレビュー