另一个列表索引问题(这个问题对我来说有点棘手):
所以我创建了一本字典(集合.defaultdict(列表)。你知道吗
d = collections.defaultdict(list)
with arcpy.da.SearchCursor(fc, fields) as cursor :
for roadname,x,y,bearing,e_id in cursor:
d[roadname].append([x,y,bearing,e_id])
从这个词汇表中,我在一个列表中添加了一些数据。它有多个层次。你知道吗
for row in d.items():
#print(row[0][:]) # Name of the streets
#print(row[1][:]) # List of values : x,y,heading and e_id
#print(row[1][0][2])#Heading
#East heading
if 45 <= row[1][0][2] <= 135:
east_heading.append(row)
print(str(row[0][:] + ' ==> Heading : East'))
列表中的第一个信息是街道名称。在这个列表中,还有另一个列表,其中包含多个信息(x,y,heading和一个空字段(目前)。列表如下所示:
[('Adams_Street', [[-73.5073589207775, 45.38858418960871, 50.4474983215332, ''], [-73.50783911468335, 45.38868216265172, 50.4474983215332, ''], ('Archie_Street', [[-73.50561268197964, 45.38481501040445, 75.03119659423828, '']]) and so on...
每个子列表(街道名称)的长度彼此不同。你知道吗
我正在尝试按X坐标对列表排序(例如:-73.5056…)。我可以通过这个循环获得所有值,但我不知道如何对其进行排序:
for entries in east_heading:
print(entries[1][0][0])
如有任何建议,将不胜感激。你知道吗
谢谢
您应该能够对数组项调用
sort
函数。你知道吗您应该能够使用this作为引用,但对于您的问题,您可以:
这会将基于最低x坐标的子阵列顺序更改为最高。使用
.sort(reverse=True,key=sortFun)
将子数组的顺序从最高x坐标更改为最低x坐标。你知道吗例如,如果我为您的数据结构制作了一个可用的副本
然后通过上面设置的过程,它应该产生这个输出
我不太确定我是否完全理解您试图排序的数据,但如果是这样的数据
如果您想按
entry[1][0][0]
排序,那么我知道的最简单的方法是:引用:Sort a list according to the second element in sublist
相关问题 更多 >
编程相关推荐