Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
如何组合列表并使用条件语句将其打印出来?python_Python_List_Loops - Fatal编程技术网

如何组合列表并使用条件语句将其打印出来?python

如何组合列表并使用条件语句将其打印出来?python,python,list,loops,Python,List,Loops,好的,这里我有一个气象站的列表,它们在纬度和经度上的坐标都在不同的列表中 # Station names stations = ['Hanko Russarö', 'Heinola Asemantaus', 'Helsinki Kaisaniemi', 'Helsinki Malmi airfield', 'Hyvinkää Hyvinkäänkylä', 'Joutsa Savenaho', 'Juuka Niemelä', 'Jyväsky

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

# 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]
我怎样才能把这些结合起来,从而找出列表中的哪些站点属于某个lat,lon区域?我会在一周内完成

N = len(stations)
print(N)
34

但是我如何利用这个循环找出空间站,纬度和经度对呢?我是否使用某种索引方法?

您可以这样做

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

如果您知道有长度相等的列表:

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

回答你的第二个问题


条件语句是否可以集成到此中?例如:如果i<64.5,在lats中i代表i

是的,只需在打印前添加一个条件

for i in range(len(stations)):
    if lats[i] > 64.5:
        print(stations[i], lats[i], lons[i])
可以使用zip()函数迭代多个iTerable:

for station, lat, lon in zip(stations, lats, lons):
    print(f'Station {station} with latitude {lat} and lon {lon}')
创建包含桩号及其坐标的字典 您可以使用内置函数组合这些列表,然后对它们进行迭代:

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}


这里有一些很好的解决方案,但您可能也对使用数据帧管理数据感兴趣:

import pandas as pd
df = pd.DataFrame({
    'station': stations,
    'lat': lats,
    'lon': lons
})
print(df)

好的,标题有点混乱,因为我知道条件语句,问题是列表的配对。如果你能告诉我们你到目前为止所做的尝试,那就太好了。即使在
站点
列表的长度上进行简单的暴力迭代,也应该允许您针对其他列表进行索引。当然,还有其他更“pythonic”的方法。但是看起来你甚至没有尝试过任何东西。条件语句可以集成到这个中吗?例如:如果i<64.5,在lats中i代表i?
import pandas as pd
df = pd.DataFrame({
    'station': stations,
    'lat': lats,
    'lon': lons
})
print(df)