如何向空列表赋值 用for循环存储平方根值到userDist列表
问题分析
你的代码存在3处核心错误,完全无法实现预期功能:
- 遍历逻辑错误:
for i in usersXcordd遍历得到的i是usersXcordd中存储的X坐标数值,不是列表索引,无法作为下标访问usersXcordd[i]、usersYcordd[i] - 空列表调用逻辑错误:
userDist初始为空列表,不存在userDist[i]这个元素,同时append()是列表本身的方法,不需要指定索引调用 - 运算符使用错误:Python中
^是按位异或运算符,不是幂运算,计算平方需要用**运算符
修正后代码
常规循环写法:
import math userDist = [] # 按索引遍历两个坐标列表 for i in range(len(usersXcordd)): dx = usersXcordd[i] - baseStationX dy = usersYcordd[i] - baseStationY userDist.append(math.sqrt(dx**2 + dy**2))
更简洁的列表推导式写法:
import math userDist = [math.sqrt((x - baseStationX)**2 + (y - baseStationY)**2) for x, y in zip(usersXcordd, usersYcordd)]
内容的提问来源于stack exchange,提问作者user10078002
相关产品推荐
相关产品推荐

