簡體   English   中英

查找列表中包含特定字符的第一個元素

[英]Find first element in list that contains a specific character

我試圖在下面的字符串中找到一種方法來取出 3 萬美元,我總是希望第一次出現 $(美元符號)但帶來全部價值

text = 'My 82 Benchmark $30K 1000m S7 $23'

text_string = (text.split()) 
text_string

輸出 = ['My', '82', 'Benchmark', '$30K', '1000m', 'S7', '$23']

我試過這個代碼

for i in text_string: 
    if('$' in i) : 
        print ("Element Exists") 

這似乎知道它存在但不知道它存在於哪個

您可以通過使用re模塊輕松獲得您想要的東西

import re

要獲得第一次出現,您可以執行以下操作:

m = re.search('([$][0-9]+K?)', text)
print(m.group(0))

如果你想要所有的事件,你可以這樣做:

re.findall('([$][0-9]+K?)', text)

獲取包含所有匹配項的列表。 希望能幫助到你。

您已正確完成所有操作,只需打印變量即可。
如果您只想要第一個值,那么您可以使用 break 來轉義循環。
一旦達到所需值,這將停止循環。

此代碼已修復並打印 30 美元。

text = 'My 82 Benchmark $30K 1000m S7 $23'

text_string = text.split()

print(text_string)
for i in text_string: 
    if '$' in i: 
        print(i) 
        break

我還刪除了代碼中的額外括號,以及 print 和 open 之間的空格(

更新

我還將嘗試解釋 Tom Karzes 在此處的一個小回答中所說的話。

Tom Karzes 說使用列表理解。 要列出理解,代碼是

strings = [s for s in text_string if '$' in s]
if len(strings) > 0:
    print(strings[0])

列表理解是一種快速制作列表的方法。 在這里,您遍歷 text_string 列表中的所有字符串,並僅收集其中包含$字符的字符串(查看if '$' in s )。
這樣你就得到一個字符串列表,其中所有的字符串都有一個$字符。 您現在可以使用len檢查大小是否大於 0,然后首先打印字符串列表中的項目。

您可以在拆分空格之前拆分“$”:

"$"+text.split("$",1)[1].split()[0] 

如果您只需要其中包含 $ 符號的第一個元素,那么您可以簡單地跳出循環。

text = 'My 82 Benchmark $30K 1000m S7 $23'
text_string = text.split()
print(text_string)
for i in text_string: 
    if '$' in i: 
        print(i) 
        break

列表推導式有點矯枉過正,使用生成器:

next((x for x in text.split() if '$' in x), '')

在代碼中

text = 'My 82 Benchmark $30K 1000m S7 $23'

print(next((x for x in text.split() if '$' in x), ''))
# 30K

暫無
暫無

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

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