Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅使用字符串方法匹配后跟数字的字符串_Python_Python 3.x_String - Fatal编程技术网

Python 仅使用字符串方法匹配后跟数字的字符串

Python 仅使用字符串方法匹配后跟数字的字符串,python,python-3.x,string,Python,Python 3.x,String,所以我写了很多代码,到目前为止避免了导入或使用regex,如果可能的话,我更愿意保持这种方式 有一个如下所示的列表: mylist = ["dog", "dogs", "dogs75", "75dogs", "cats75"] >>> [i for i, j in enumerate(mylist) if "cat" in j] [4] >>> [i for i, j in enumerate(mylist) if "dog" in j] [0, 1, 2,

所以我写了很多代码,到目前为止避免了导入或使用regex,如果可能的话,我更愿意保持这种方式

有一个如下所示的列表:

mylist = ["dog", "dogs", "dogs75", "75dogs", "cats75"]
>>> [i for i, j in enumerate(mylist) if "cat" in j]
[4]
>>> [i for i, j in enumerate(mylist) if "dog" in j]
[0, 1, 2, 3]
>>> 
我可以得到各种匹配元素的索引,如下所示:

mylist = ["dog", "dogs", "dogs75", "75dogs", "cats75"]
>>> [i for i, j in enumerate(mylist) if "cat" in j]
[4]
>>> [i for i, j in enumerate(mylist) if "dog" in j]
[0, 1, 2, 3]
>>> 

我实际上要找的是
“dogs75”
,实际上是任何结尾包含整数的字符串


无需导入
re
即可完成此操作吗

您可以使用列表理解并检查每个字符串的最后一个字符是否为数字:

[ix for ix, i in enumerate(mylist) if i[-1].isnumeric()]
# [2, 4]

您可以使用
isdecimal()
检查最后一个字符:

>>> mylist = ["dog", "dogs", "dogs75", "75dogs", "cats75"]
>>> [i for i, j in enumerate(mylist) if j[-1].isdecimal()]
[2, 4]
如果期望使用非数字0-9的类数字字符,也可以将
isdecimal
替换为
isdigit
isnumeric

[s for s in mylist if s[-1].isdigit()]

应该给你想要的列表

你可以用
i[-1]
isalpha
isdigit
@G.Anderson检查最后一个字符。我想基本上就是这样,为什么我认为它不止这些。。如果最后一个1是数字,那么最后一个2还是3并不重要。我意识到我实际上只需要
“dogs75”
,而不需要
“cats75”
,但我可以通过在列表中添加
.startswith(“dogs”)
来解决这个问题。“任何结尾包含整数的字符串”--实际上,您的解决方案在有趣的边缘情况下失败,例如
mylist=[“dog¼”]
;)那只是它的一条腿;)