簡體   English   中英

通過數字獲取字符串[Python]

[英]Get a string by number [Python]

我有一個以數字結尾的字符串列表,我需要根據給定的數字找到一個。

strings = ["..1", "..2" , "..6", "..16","..26"]
tosearch = 6
for mystr in strings:
    if tosearch in mystr:
        print("FIND!")

但是,如果我搜索“ 6”,我會發現3個字符串(.. 6,.. 16,.. 26)如何才能通過給定的數字精確地找到一個字符串(如果tosearch是26,我只會得到“ .. 26” )

完成搜索的一種方法是更改​​搜索字符串:

strings = ["..1", "..2" , "..6", "..16","..26"]
tosearch = 6
tosearch = '..{}'.format(tosearch)  # ==> '..6'
for mystr in strings:
    ...

如果字符串中的所有字符都是數字,則isdigit()方法返回True ,否則返回False split()方法在使用指定的分隔符將給定字符串斷開后,返回字符串列表。

例如

strings = ["..1", "..2" , "..6", "..16","..26"]
tosearch = 6
for mystr in strings:
    elm = [int(x) for x in mystr.split(".") if x.isdigit()][0]
    if elm == tosearch:
        print("FIND!")

O / P:

FIND!
import re
strings = ["..1", "..2" , "..6", "..16","..26"]
pattern=re.compile(r"\d+")
stringnumbers = [int(pattern.findall(i)[0]) for i in strings]
tosearch = 6
if tosearch in stringnumbers:
    print("FIND!")

strings = ["..1", "..2" , "..6", "..6","..16","..26"]
nstr =[int(s.replace('.','')) for s in strings]
tosearch = 6
for mystr in nstr:
if tosearch == mystr: 
    print("FIND!")
    break 

輸出:

FIND!

暫無
暫無

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

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