【问题标题】:Get first item of every sublist of list in Python获取Python中每个列表子列表的第一项
【发布时间】:2017-11-05 03:23:23
【问题描述】:

我有以下字符串,它是一个列表列表:

"ID":[[310.5,1.1612828],[310.0,15.0],[310.0,2.9755309],[309.5,30.0]]

我想将每个列表的所有第一个值抓取到variable 中,所以输出应该是这种情况

print variable

预期输出:

310.5
310.0
310.0
309.5

【问题讨论】:

    标签: python arraylist


    【解决方案1】:
    id = [[310.5,1.1612828],[310.0,15.0],[310.0,2.9755309],[309.5,30.0]]
    
    # If you just want to output to console:
    [print(x[0]) for x in id]  #if id a list
    # if id is in dict named dict_
    [print(x[0] for x in dict_['id']
    

    这是一个更长的版本。

    dict_ = {'id': [[310.5,1.1612828],
                    [310.0,15.0],
                    [310.0,2.9755309],
                    [309.5,30.0]]
                    }
    
    
    
    #make a list containing position 0 values of sublists
    pos_0 = [x[0] for x in dict_['id']]
    print(pos_0)
    
    #output them to a file
    for entry in pos_0:
          print(entry)
    

    【讨论】:

    • 感谢以上内容,但这似乎让我打印出 [[310.5,1.1612828],[310.0,15.0],[310.0,2.9755309],[309.5,30.0]] 和第二个元素仍然存在..
    • 虽然您可以这样做,但仅将列表推导式用于其副作用并不符合习惯。更好的方法是将其拆分为单独的步骤。先创建列表,然后打印。
    • 我知道我只是在展示它作为如何做的概念证明。下面是更详细的版本。
    • 这可能是因为列表列表嵌套在字典中吗?所以完整的“列表”看起来像这样 {a="timestamp":1496485492,"ID":[[310.5,1.1612828],[310.0,15.0],[310.0,2.9755309],[309.5,30.0]]}跨度>
    【解决方案2】:

    要将第一个元素捕获到变量中,您可以使用list comprehension,例如:

    代码:

    data = {
        'ID': [[310.5, 1.1612828],
               [310.0, 15.0],
               [310.0, 2.9755309],
               [309.5, 30.0]]
    }
    
    variable = [x[0] for x in data['ID']]
    
    print(variable)
    

    结果:

    [310.5, 310.0, 310.0, 309.5]
    

    【讨论】:

    • 我真的很喜欢这个答案,但它在我的场景中不起作用..我忘了说这个列表列表嵌套在这样的字典中 {a="timestamp":1496485492,"ID ":[[310.5,1.1612828],[310.0,15.‌​0],[310.0,2.9755309]‌​,[309.5,30.0]]} 你能帮忙吗?
    • 所提供的答案完全符合这种情况。只需更改 data 以匹配您的字典名称。
    【解决方案3】:

    此代码将遍历每个第一个元素并将其附加到 out 列表中,以便将来访问。

    dict_ = {"ID":[[310.5,1.1612828],[310.0,15.0],[310.0,2.9755309],[309.5,30.0]]}
    out=[]
    
    for item in dict_["ID"]:
        out.append(item[0])
    print(out)
    

    这将输出[310.5, 310.0, 310.0, 309.5]。这是你需要的吗?

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      相关资源
      最近更新 更多