Python3比较运算符,字母匹配字母
好的,基本上这就是我所知道的,它确实有效,使用Python3:Python3比较运算符,字母匹配字母,python,regex,python-3.x,Python,Regex,Python 3.x,好的,基本上这就是我所知道的,它确实有效,使用Python3: color="Red1 and Blue2!" color[2]=="d" True 我需要的是,当我调用任何位置(在比较中输入任何单个字符的小写或大写)时,将其放入括号“color[]”中,并将其与“小写或大写字母”进行比较,不包括所有数字和字符(.*&^%$#@!)。 为了达到以下效果: color="Red1 and Blue2!" if color[5]==[a-zA-z]: doSomething else:
color="Red1 and Blue2!"
color[2]=="d"
True
我需要的是,当我调用任何位置(在比较中输入任何单个字符的小写或大写)时,将其放入括号“color[]”中,并将其与“小写或大写字母”进行比较,不包括所有数字和字符(.*&^%$#@!)。
为了达到以下效果:
color="Red1 and Blue2!"
if color[5]==[a-zA-z]:
doSomething
else:
doSomethingElse
当然,我上面列出的东西不起作用。也许我的语法错了,也许就是做不到。如果我只在等号的“右边”使用一个字母,那么一切都很好,但是就像我说的,我需要将任何一个字母拉到左边,以匹配右边的某个字母
首先,我不想确保这是可能的,我要完成什么?
第二,如果确实有可能做到这一点,那么“不”导入除“sys”之外的任何内容即可“完成”
如果实现这一点的唯一方法是导入其他内容,那么我将研究该建议,但是如果可能的话,我宁愿不导入任何内容
我在这个网站上搜索了我的书和所有其他问题,但我似乎找不到任何匹配的,谢谢。这是有用的地方
color="Red1 and Blue2!"
if color[5].isalpha():
doSomething
else:
doSomethingElse
如果您需要数字,还有
isnumeric()
。要查找字母,只需简单检查:
会有用的
对于不存在特定检查功能的一般情况,您可以在检查中使用:
if color[5] in '13579': # Checks for existence in some random letter set
如果“随机字母集”足够大,您可能希望预转换到a进行检查(frozenset
成员资格测试大致为O(1)
,而不是O(n)
用于str
,但是str
测试经过了充分优化,在frozenset
有意义之前,您需要相当长的str
;可能比示例中的要大:
或者,您可以通过以下方式获得您想要的:
import re
# Do this once up front to avoid recompiling, then use repeatedly
islet = re.compile('^[a-zA-Z]$').match
...
if islet(color[5]):
但我不太清楚为什么不需要从标准库导入任何内容
导入字符串
color=“红色1和蓝色2!”
如果颜色[5]为string.ascii_字母:
打印(“做某事”)
其他:
打印(“做其他事情”)
虽然这是一种很好的通用测试模式,用于测试字母是否是任意字符集的一部分(以及string.ascii_字母
对于其他目的很有用,例如迭代特定字母等),如果您只需要ascii字母,则需要使用该模式,.isalpha()
更容易预测(所有命中和未命中的运行时间相同),还将包括非ASCII字母作为“字母”字符,这是您通常想要的。@ShadowRanger您说得对,但我想在使用正则表达式包或显式列出所有字符时给出一个更简单的答案。我更愿意在您的答案中添加字符串。ascii字母
,以使其更完整。是的,这不是我的选择,这是我得到的要求没有导入任何东西,这些响应有帮助。我还有更多的代码要写。
CHARSET = frozenset('13579adgjlqetuozcbm')
if color[5] in CHARSET:
import re
# Do this once up front to avoid recompiling, then use repeatedly
islet = re.compile('^[a-zA-Z]$').match
...
if islet(color[5]):