【问题标题】:How do I select specific items from a list in python?如何从 python 的列表中选择特定项目?
【发布时间】:2021-06-10 17:07:44
【问题描述】:

我有多个WAT2_005= ['1317.85 1344.47" spec4 = "4 61 0 9478.0172299001 0.12425255236787 20'] 形式的列表。所有列表中唯一的共同点是数字 0。我需要从列表中获取的两个数字恰好出现在所有列表中的数字 0 之后。例如,在上面提供的列表中,0 后面的两个数字是9478.01722990010.12425255236787。如何创建一个遍历列表并仅选择在 0 之后遇到的两个数字并存储在新列表中的循环?

【问题讨论】:

    标签: python arrays python-3.x list loops


    【解决方案1】:

    您可以首先在“0”上拆分每个字符串,以捕获该单独零之后出现的部分。然后在空格上再次拆分以选择接下来的两个值并使用 map 将它们转换为浮点数。

    由于您的字符串在一个列表中,我假设您的实际数据中可能有多个这样的字符串,并且每个字符串都需要一对数字(否则不要将字符串包含在列表中):

    WAT2_005=['1317.85 1344.47" spec4 = "4 61 0 9478.0172299001 0.12425255236787 20']
    
    nums = [ [*map(float,S.split(" 0 ",1)[-1].split(" ")[:2])] for S in WAT2_005]
    
    [[9478.0172299001, 0.12425255236787]]
    

    【讨论】:

      【解决方案2】:
      • 我们可以使用find()来获取0的索引,然后添加2到这个 index 以获取数字的起始位置。
      • 一旦我们得到了数字的起始位置,我们就可以切片了
        剩余的字符串。

      然后我们可以split('')这个字符串并创建一个新列表。

      WAT2_005= ['1317.85 1344.47" spec4 = "4 61 0 9478.0172299001 0.12425255236787 20']
      
      for element in WAT2_005:
          indx = element.find('0')+2
          new_str = element[indx:]
          lst = list(new_str.split(' '))
      
      print(lst)
      

      【讨论】:

        【解决方案3】:

        因为您的列表是一个字符串,所以您必须先将其拆分。然后,您可以使用 .index 函数获取零的索引,只需添加 2 即可获取其他数字。这是一个例子:

        WAT2_005= ['1317.85 1344.47" spec4 = "4 61 0 9478.0172299001 0.12425255236787 20']
        l = WAT2_005[0].split(" ")
        index = l.index("0")
        values = (l[index +1], l[index +2])
        

        这应该为您提供所需的值。你可以使用任何变量名,我只是随机做了一些。

        【讨论】:

        • 有没有办法为这个过程创建一个循环。我尝试将所有列表存储在l=[WAT2_005,WAT2_006,.....] 并使用for i in l: if "0" in i: index=i.index("0") value=(i[index+1]). 执行循环但是我最后只从列表中获得了两个值。
        • 您可以运行 for 循环,在循环之前创建一个名为 values 或其他内容的新列表,然后将每个值附加到该列表中。这是一种选择。
        猜你喜欢
        • 1970-01-01
        • 2019-05-16
        • 1970-01-01
        • 2021-12-01
        • 1970-01-01
        • 2018-01-25
        • 2015-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多