我有两个清单:
yy = ['Inside the area', 'Inside the area', 'Inside the area', 'Inside the area', 'Inside the area', 'Inside the area', 'Outside the area']
lat_ = [77.2167, 77.25, 77.2167, 77.2167, 77.2, 77.2167, 77.2]
我正在使用这里的一些帖子给出的解决方案将它们组合在一起:
new_dict = {k: v for k, v in zip(yy, lat_)}
print new_dict
但我的输出是{'Inside the area': 77.2167, 'Outside the area': 77.2}
这种情况正在发生,因为大多数键是相同的。我这样做是因为我想映射这两个列表,以便得到lat的内部或外部的哪些值,然后只保留内部的值。
答案 0 :(得分:2)
您可以压缩它们并在列表理解中添加一个警卫:
res = [lat for a, lat in zip(yy, lat_) if a.startswith(“Inside”)]
答案 1 :(得分:1)
保持内部的值:
for k, v in zip(yy, lat_):
if k.startswith('Inside'):
inside.append(v)
yy = ['Inside the area', 'Inside the area', 'Inside the area',
'Inside the area', 'Inside the area', 'Inside the area',
'Outside the area']
lat_ = [77.2167, 77.25, 77.2167, 77.2167, 77.2, 77.2167, 77.2]
inside = []
for k, v in zip(yy, lat_):
if k.startswith('Inside'):
inside.append(v)
print(inside)
[77.2167, 77.25, 77.2167, 77.2167, 77.2, 77.2167]