繁体   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