因此,我已经写了很多代码,到目前为止,避免导入或使用正则表达式,如果可能的话,宁愿保持这种方式。
有一个看起来像这样的列表:
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
来完成此操作吗?
答案 0 :(得分:1)
您可以使用列表推导并检查每个字符串的最后一个字符是否为数字:
[ix for ix, i in enumerate(mylist) if i[-1].isnumeric()]
# [2, 4]
答案 1 :(得分:1)
您可以使用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
答案 2 :(得分:0)
[s for s in mylist if s[-1].isdigit()]
应该给您想要的列表