簡體   English   中英

如何從 python 的列表中 select 特定項目?

[英]How do I select specific items from a list in python?

我有多個WAT2_005= ['1317.85 1344.47" spec4 = "4 61 0 9478.0172299001 0.12425255236787 20']形式的列表。 所有列表中唯一的共同點是數字 0。我需要從列表中獲取的兩個數字恰好出現在所有列表中的數字 0 之后。 例如,在上面提供的列表中,0 之后的兩個數字是9478.01722990010.12425255236787 如何創建一個遍歷列表並僅選擇在 0 之后遇到的兩個數字並存儲在新列表中的循環?

因為您的列表是一個字符串,所以您必須先將其拆分。 然后,您可以使用 .index function 來獲取零的索引,只需添加 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])

這應該給你你需要的價值觀。 你可以使用任何變量名,我只是做了一些隨機的。

  • 我們可以使用find()來獲取 0 的索引。然后在這個索引上加 2 來獲取數字的起始 position。
  • 一旦我們得到數字的起始 position,我們就可以切片
    剩余的字符串。

然后我們可以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)

您可以首先在“ 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]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM