【发布时间】:2019-03-04 20:05:04
【问题描述】:
另一个列表索引问题(这对我来说有点棘手):
所以我创建了一个字典 (collections.defaultdict(list).
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、标题和一个空字段(暂时)。列表如下所示:
[('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])
任何建议将不胜感激。
谢谢
【问题讨论】:
-
目前这不是一个有效的数据结构。你有一个元组的开始,但没有结束。
-
从你的问题中你不太清楚你想要什么。你想分别对每个子列表进行排序,还是对外部列表进行排序。例如。在您的示例中,是否应该对 Adams_Street 的所有条目进行排序,而对 Foo_street 的条目进行单独排序,或者您是否还希望对它进行排序,使得外部列表中 Adams_street 和 Foo_street 的顺序很重要?
-
对不起,这不太容易描述。让我澄清一下:每条街道都有一个值的子列表,我需要对每条街道的这些值进行排序。这条街道出现在另一个列表中的顺序对我来说并不重要。
标签: python list dictionary indexing