나는 [(1,2),(3,4),(5,6),(7,8)]
점 목록으로 작업하고 있습니다. 각 지점에서 목록의 다른 모든 지점까지 유클리드 거리를 찾고 싶습니다.Python : for 루프를 사용하여 float의 중첩 목록 만들기
다음 원래 목록의 각 지점을 나타내는 새 목록이 필요하며 새 목록에서 해당 지점과 관련된 거리 만 추가합니다.
지금까지 내가 가진 : mat_ary1
에
i
for i in mat_ary1:
points_dist_i = []
for j in i:
row = []
x2 = [u[0] for u in i]
y2 = [u[1] for u in i]
# Calculate the distance from point j to all others
for a in x2:
dist_x_1 = pow((a - j[0]),2)
for b in y2:
dist_y_1 = pow((b - j[1]),2)
dist_xy_1 = float('{0:.2f}'.format((math.sqrt(dist_x_1 + dist_y_1))))
for item in j:
if item not in row:
row.append(dist_xy_1)
else:
continue
points_dist_i.append(row)
포인트의 목록을 나타냅니다. 루프를 사용하면 동일한 계산을 반복하는 것처럼 보입니다.
이[[6.32, 6.32], [6.32, 6.32], [0.0, 0.0], [0.0, 0.0]]
[[11.4, 11.4], [11.4, 11.4], [0.0, 0.0], [0.0, 0.0]]
[[16.49, 16.49], [16.49, 16.49], [0.0, 0.0], [0.0, 0.0]]
[[14.32, 14.32], [14.32, 14.32], [0.0, 0.0], [0.0, 0.0]]
[[13.0, 13.0], [13.0, 13.0], [0.0, 0.0], [0.0, 0.0]]
[[11.66, 11.66], [11.66, 11.66], [0.0, 0.0], [0.0, 0.0]]
나는 당신을 이해하도록하겠습니다. 우리는 두 점,'(1,2)'및 ((3,4))를 가지고 있다고 가정 해 봅시다. 그 두 점에 대해 '1'과 '3'사이의 거리를 찾고 싶습니다. 그리고'2'와'4'? –
원하는 출력은 정확히 무엇입니까? –
@ Mr.goosberry - 네, 그게 원 하긴하지만 내 목록 크기는 항상 달라집니다 – vanoccupanther