前提・実現したいこと
リストから条件に一致する要素のみを取り出し,別のリストにappendしたい
変数の説明
next_point : keyが格納された配列
new_distance_sorted: (key,distance)のタプルを格納したリストでdistanceでソートした順番になっている
next_point = [625,1010] new_distance_sorted = [(1010, 0.0), (3896, 0.0), (16720, 0.0), (625, 9.999999974752427e-07), (731, 9.999999974752427e-07), (742, 9.999999974752427e-07), (753, 9.999999974752427e-07), ..... ]
該当のソースコード
やりたいこととしては,next_pointにあるkeyと一致していない かつ distanceが0.0でない条件のkeyを次のnext_pointにappendしたい.
この条件を満たすのは,new_distance_sortedを見れば明らかで,"731"がappendされることがわかるが,プログラム側で判別させたい.
next_point = [625,1010] flag = False for i,data in enumerate(new_distance_sorted): for j in next_point: if data[0] != j and data[1] != 0.0: flag = True next_point.append(data[0]) break if flag: break print(next_point)
上記コード
print(next_point)の結果:
[625, 1010, 625]
試したこと
python側であまりにも小さい数を0.0と一致したものと満たしてしまうのかと思って確認したが,しっかりと別の値だと認識できていた.
if 9.999999974752427e-07 == 0.0: print("Yes") else: print("No") #No
なぜ,625が出てきてしまうのかわからない,orやらと試してみたがもちろんうまくいかなかったです.
どうかご指摘よろしくお願いします.
回答2件
あなたの回答
tips
プレビュー