[英]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.