Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python3中的循环内创建新数组变量_Python_Arrays_Python 3.x - Fatal编程技术网

在python3中的循环内创建新数组变量

在python3中的循环内创建新数组变量,python,arrays,python-3.x,Python,Arrays,Python 3.x,使用此当前代码,读取4G_pathA.FMT文件,然后在一个循环中进行处理,在该循环中测量一对地理坐标之间的距离。这些值随后存储在数组dist()中。 但是,我想将这些值存储在13个不同的数组中,每个数组对应于paths[]数组中的每个路径,因此dist_pathA、dist_pathB等以及RSRP_pathA、RSRP_pathB等。 如何使用for循环中的x值作为名称在循环内创建新数组?我试过了 r = 6371e3 # metres latBS = 41.178210 lonBS = -

使用此当前代码,读取4G_pathA.FMT文件,然后在一个循环中进行处理,在该循环中测量一对地理坐标之间的距离。这些值随后存储在数组dist()中。 但是,我想将这些值存储在13个不同的数组中,每个数组对应于paths[]数组中的每个路径,因此dist_pathA、dist_pathB等以及RSRP_pathA、RSRP_pathB等。 如何使用for循环中的x值作为名称在循环内创建新数组?我试过了

r = 6371e3 # metres
latBS = 41.178210
lonBS = -8.597820
φ1 = latBS * math.pi/180 # φ, λ in radians
l = 0


dist=[] 
RSRP=[]

paths = ["pathA", "pathB", "pathC", "pathD0", "pathD1", "pathD2", "pathD3", "pathE", "pathF", "pathG0", "pathG1", "pathG2","pathG3"]

for x in paths:
    logFile = pd.read_csv('export/4G_{}.FMT'.format(x), sep='\t')
    logClean = logFile.dropna(subset=['All-Latitude', 'All-Longitude'])
 
    dist.clear()
    RSRP.clear()

    for index, row in logClean.iterrows():
    
        latMS=row['All-Latitude']
        lonMS=row['All-Longitude']

        φ2 = latMS * math.pi/180
        Δφ = (latMS-latBS) * math.pi/180
        Δλ = (lonMS-lonBS) * math.pi/180
        a = math.sin(Δφ/2) * math.sin(Δφ/2) + math.cos(φ1) * math.cos(φ2) * math.sin(Δλ/2) * math.sin(Δλ/2)
        c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
        d = r * c
        dist.append(d) # in metres
        RSRP.append(row['All-Serving Cell RSRP (dBm)[1]'])
但是没有用


Cheers

在循环中创建/填充的数组中存储数据的示例:

dist_{}.format(x)=[]
从集合导入defaultdict
数组\u dict=defaultdict(列表)
对于范围(10)内的i:
数组\u dict[i].append()

循环结束后,每个键都代表数组名称和数组内容的值

不要这样做。相反,创建一个字典,其中路径是键,数组是值。这更容易使用。您正在尝试将字符串处理函数应用于标识符名称。有些语言(众所周知的是Tcl)经常使用间接变量命名,但在Python中不推荐使用这种模式,也不像您编写的那样简单。正如蒂姆·罗伯茨所建议的那样,你真正想要的是一本字典或一份清单。
from collections import defaultdict

arrays_dict = defaultdict(list)
for i in range(10):
  arrays_dict[i].append(<something>)