【问题标题】:Trying to set each piece of a list in a for loop尝试在 for 循环中设置列表的每一部分
【发布时间】:2021-02-07 01:24:02
【问题描述】:
   info = [[30.22,-81.88,VFR],[27.18,-80.22,VFR], [35.35,-89.87,MVFR]]

所以这是我列表的一小部分,里面有列表。这是我的一般列表“信息”中较长的 4700 个列表的简短 sn-p

我基本上需要将每个列表中的每个值都放入变量中,例如: info[1][30.22,-81.88,VFR] 我需要设置lat[i] = 30.22, long[I] = -81.11, cat[I] = VFR

然后我会将这些坐标映射到 OpenStreetMap 上等等。

所以我的问题是如何取出每个列表并取出每个列表的每个值?

我最好的猜测是 for 循环中的 for 循环?

【问题讨论】:

    标签: python arrays list for-loop


    【解决方案1】:

    将每个元素转换为元组,然后将元组拆分为变量或将每个内部元素附加到列表中。

    拆分元组:

    info = [[30.22,-81.88,'VFR'],[27.18,-80.22,'VFR'], [35.35,-89.87,'MVFR']]
    
    lat = [None] * len(info)
    long = [None] * len(info)
    cat = [None] * len(info)
    
    for i,e in enumerate(info):
       lat[i], long[i], cat[i] = tuple(e)
    
    print(lat)
    print(long)
    print(cat)
    

    附加内部元素:

    info = [[30.22,-81.88,'VFR'],[27.18,-80.22,'VFR'], [35.35,-89.87,'MVFR']]
    
    lat = []
    long = []
    cat = []
    
    for e in info:
       lat.append(e[0])
       long.append(e[1])
       cat.append(e[2])
       
    print(lat)
    print(long)
    print(cat)
    

    列表推导也是一种选择:

    info = [[30.22,-81.88,'VFR'],[27.18,-80.22,'VFR'], [35.35,-89.87,'MVFR']]
    
    lat =  [e[0] for e in info]
    long = [e[1] for e in info]
    cat =  [e[2] for e in info]
       
    print(lat)
    print(long)
    print(cat)
    

    结果都一样:

    [30.22, 27.18, 35.35]
    [-81.88, -80.22, -89.87]
    ['VFR', 'VFR', 'MVFR']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-22
      • 2018-02-24
      • 2018-05-11
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多