如何组合列表并用条件语句打印出来?Python

2024-10-06 15:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,这里我有一个气象站的列表,它们的纬度和经度坐标都在不同的列表中。你知道吗

# Station names
stations = ['Hanko Russarö', 'Heinola Asemantaus', 'Helsinki Kaisaniemi', 
            'Helsinki Malmi airfield', 'Hyvinkää Hyvinkäänkylä', 'Joutsa Savenaho', 
            'Juuka Niemelä', 'Jyväskylä airport', 'Kaarina Yltöinen', 'Kauhava airfield', 
            'Kemi Kemi-Tornio airport', 'Kotka Rankki', 'Kouvola Anjala', 
            'Kouvola Utti airport', 'Kuopio Maaninka', 'Kuusamo airport', 
            'Lieksa Lampela', 'Mustasaari Valassaaret', 'Parainen Utö', 'Pori airport', 
            'Rovaniemi Apukka', 'Salo Kärkkä', 'Savonlinna Punkaharju Laukansaari', 
            'Seinäjoki Pelmaa', 'Siikajoki Ruukki', 'Siilinjärvi Kuopio airport', 
            'Tohmajärvi Kemie', 'Utsjoki Nuorgam', 'Vaala Pelso', 'Vaasa airport', 
            'Vesanto Sonkari', 'Vieremä Kaarakkala', 'Vihti Maasoja', 'Ylitornio Meltosjärvi']

# Latitude coordinates of Weather stations  
lats = [59.77, 61.2, 60.18, 60.25, 60.6, 61.88, 63.23, 62.4,
       60.39, 63.12, 65.78, 60.38, 60.7, 60.9, 63.14, 65.99,
       63.32, 63.44, 59.78, 61.47, 66.58, 60.37, 61.8, 62.94,
       64.68, 63.01, 62.24, 70.08, 64.5, 63.06, 62.92, 63.84,
       60.42, 66.53]

# Longitude coordinates of Weather stations 
lons = [22.95, 26.05, 24.94, 25.05, 24.8, 26.09, 29.23, 25.67, 
       22.55, 23.04, 24.58, 26.96, 26.81, 26.95, 27.31, 29.23, 
       30.05, 21.07, 21.37, 21.79, 26.01, 23.11, 29.32, 22.49, 
       25.09, 27.8, 30.35, 27.9, 26.42, 21.75, 26.42, 27.22, 
       24.4, 24.65]

我怎样才能把这些结合起来,这样我就可以找出列表中哪些电台属于某个纬度,经度区域?我会在循环的时候做

N = len(stations)
print(N)
34

但是我怎么用这个循环来找出空间站,纬度和经度对呢?我是否使用某种索引方法?你知道吗


Tags: of列表weatherstationscoordinates纬度经度airport
3条回答

你可以这样做

for combo in zip(stations,lats,lons):
    print(combo)

创建一个包含站点及其坐标的字典

您可以使用内置函数zip()组合这些列表,然后对它们进行迭代:

locations = {}

for station, latitude, longitude in zip(stations, lats, lons):
   locations[station] = latitude, longitude

这将生成具有以下格式的词典:

locations = {
  "Hanko Russarö" : (59.77, 22.95),
  "Heinola Asemantaus" : (61.2, 26.05),
  ...
}

当然,这也可以写在一行上

locations = { station : (lat, lon) for station, lat, lon in zip(statios, lats, lons)}

使用附加条件创建词典

这可以与某些条件相结合,例如:

locations = { station : (lat, lon) for station, lat, lon in zip(statios, lats, lons) if lat > 50}

或者

locations = {}

for station, latitude, longitude in zip(stations, lats, lons):
    if latitude > 50:
        locations[station] = latitude, longitude

如果你知道你有相同长度的列表:

for i in range(len(stations)):
    print(stations[i], lats[i], lons[i])

回答你的第二个问题

Could the conditional statement be integrated into this? for example: i for i in lats if i < 64.5?

是的,只需在打印前添加一个条件。你知道吗

for i in range(len(stations)):
    if lats[i] > 64.5:
        print(stations[i], lats[i], lons[i])

相关问题 更多 >