整数/浮動小数点数のリストが与えられています。私は、最も近い2つの数を見つける必要があります。 forループのみをネストするとどうすればいいですか?2つのポイントがリストにありますか?
答えて
各要素について、それ以前の「最も近い」値と他の各要素との距離を比較する必要があります。この比較でより小さい値が得られるときは、そのペアを「最も近い」ものとして覚えています。
だから、それは簡単です:ここでは
def find_two_closest(numbers):
# most distant points:
delta = max(numbers), min(numbers)
for i, element in enumerate(numbers):
for j, sec_element in enumerate(numbers):
if i == j:
continue
if abs(sec_element - element) < abs(delta[0] - delta[1]):
delta = sec_element, element
return delta
はクイックフィックスは、ネストされたループとfor
if
条件付きです。何もありません。
これは最も効率の悪い方法ではありませんが、何かを学ぶ理由があると思います。そのような場合は、プロセスを学ぶためにしばらく時間を費やす必要があります。
my_list = [1, 3, 9, 14, 12, 20, 22]
c = list()
for value_1 in my_list:
for value_2 in my_list:
if value_1 != value_2 and value_2-value_1>0:
c.append({
'val_1': value_1,
'val_2': value_2,
'delta':value_2 - value_1
})
minimum = c[0]['delta']
for item in c:
num = item['delta']
if minimum > num:
minimum = num
print(str.join('\n', [str(item) for item in c if item['delta'] == minimum]))
返す:
{'val_1': 1, 'val_2': 3, 'subtraction': 2}
{'val_1': 12, 'val_2': 14, 'subtraction': 2}
{'val_1': 20, 'val_2': 22, 'subtraction': 2}
ええ、私たちはアルゴリズムを学ぼうとしているので、sorted()を使って同じことを達成しなければなりません。そして、どれが効率的であるかを比較する必要があります。 – PythonSOS
あなたは1行でソートすることができます!私はこれまで私の生徒にこれをやっていました。私はもうしません。しかし、あなたが 'for'と' if'だけを使ってそれをしたいのなら、これが私ができることができる唯一の方法です、そして、人、それはたくさんあります!私は前に1つのスクリプトでこれほど多くのループを書いたことはないと思います! – Pouria
今、プラス1 /私とjsbuenoの答えを受け入れてください。私は私の頭の周りに5回ラウンドでそれを回転させることによって食べ物を食べることを考えました!また、ボーナスとして最小値を見つけるアルゴリズムもあります! ;) – Pouria
- 1. どこにポイントがありますか?
- 2. 2つのリスト間のポイント差
- 3. 2スピナーのリストにラジオボタンが1つありません
- 4. AngularJS 2つのリスト:1つのリストにすべてのアンケート質問があり、もう1つのリストにすべてのアンケート回答があります。
- 5. 2つのリストの間に差異はありませんか?
- 6. Perl 5に2つのリストをインターリーブするエレガントなジップがありますか?
- 7. Java繰り返しリストごとに2つの要素があります
- 8. 同じページに2つのかみそりの形があります。 2番目にエラーがあります
- 9. registerForContexMenuは2つの異なるリストにあります。
- 10. 1つのウェブサイトに2つのドメインがありますか?
- 11. 1つのドメインに2つのteamspeakサーバーがありますか?
- 12. 別のポイントに最も近いリスト内のポイントを見つけるために、より平凡な方法がありますか?
- 13. ポイントがライン上の2つの他のポイントの間にあるかどうかを確認する
- 14. アドバンスドMySQLポイントがありませんか?
- 15. いくつかのPythonのリストに問題があります
- 16. Pythonでポイントを表す2つのリストをマージする
- 17. ジップ2と3つ以上のリストの間に違いはありますか?
- 18. XSLTの文字列(文字列(。))にポイントがありますか?
- 19. リストの1行に2色の色があります
- 20. cmd.exeのポイントから前のポイントに戻る可能性はありますか?
- 21. 2つのUIScrollViewが互いの上にありますか?
- 22. 以下の2つのコマンドに違いがありますか
- 23. CSSのurl()ポインタに2つのピリオドがありますか?
- 24. 1つのファイルに2種類のファイルタイプがありますか?
- 25. 2つのjava.sql.Timestampsの間に時差がありますか?
- 26. この行には2つのクラス名がありますか?
- 27. Laravelの同じページに2つのフォームがありますか?
- 28. 2D配列に2つのユニークなポイントをランダムに配置する方法はありますか?
- 29. Prologでマップの2つのポイント間で共通の駅を見つける方法はありますか?
- 30. 二つのリストがあります別のリスト
[リストPythonで最も近い点を見つける]の可能な重複(https://stackoverflow.com/questions/36831039/finding-closest-points-in-list- Python) – zondo
あなたの質問はあなたが最後に頼んだときと同じくらい広いです。 – zondo
どうすればより具体的にするのですか?割り当ては、文字通り、一緒に最も近いリスト内の2つのポイントを見つける必要があると言っています。 – PythonSOS