gpt4 book ai didi

python - 在Python中通过REGEX查找项目的索引

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:19 24 4
gpt4 key购买 nike

我遇到了困难,需要一些帮助。

上下文:我有一个字符串列表列表。

 Matrix = [['444'],
['23%'],
['A']]

目前,我们有一个位置 0 处的计数、位置 1 处的百分比和位置 2 处的显着性测试的列表。

列表中的列表数量会不时从 3 到 2 到 1 变化。并且列表中字符串的类型会改变位置。所以我不能假设索引 0 总是计数,百分比总是 1 等。

因此,我想找到一种方法来动态查找百分比等位于矩阵中的位置,以及它是否位于其中。

这是我到目前为止所写的内容:

for i, row in enumerate(Matrix):
for cell in row:
if "%" in cell:
percent = i
print percent
for i, row in enumerate(Matrix):
for cell in row:
if re.search('[a-zA-Z]', cell):
sigtest = i
print sigtest
for i, row in enumerate(Matrix):
for cell in row:
if re.search('[0-9]', cell):
count = i
print count

输出:

1
2
0
1

问题:如您所见,问题出在最后一个 for 循环上,该循环记录了索引 0 和 1 包含数字的事实。

需要什么:最后一个 for 循环仅搜索数字和数字的方法,一个项目包含数字和符号,不应包含索引。

希望这是有道理的!

谢谢

最佳答案

要检查字符串是否仅包含数字,您可以使用:

>>> bool(re.search(r'^[0-9]+$', '4444'))
True
>>> '4444'.isdigit() #Doesn't work for floats
True
# This will work for floats as well
>>> bool(re.search(r'^[0-9]*(\.[0-9]+)?$', '4444.123'))
True
>>> bool(re.search(r'^[0-9]*(\.[0-9]+)?$', '.123'))
True

对于百分比,您可以使用此正则表达式

>>> bool(re.search(r'^[0-9]+%$', '23%'))
True
#To handle floats as well use this:
>>> bool(re.search(r'^[0-9]*(\.[0-9]+)?%$', '23.15%'))
True
>>> bool(re.search(r'^[0-9]*(\.[0-9]+)?%$', '.150%'))
True

对于 sigtest:

>>> bool(re.search(r'^[a-z]$', 'a',re.I))
True
>>> bool(re.search(r'^[a-z]$', 'B',re.I))
True

这里^$meta-characters :

^ 匹配字符串的开头,$ 匹配字符串的结尾。

关于python - 在Python中通过REGEX查找项目的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com