如何重新创建python if语句,使其在SQL中具有LIKE属性?

2024-09-28 18:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python if语句

def FindLabel ( [Area_wl], [OWNER], [APN] ):
    if [OWNER] == 'PELT KENNETH D':
        return "<CLR red='255'><FNT size = '7'>" + [OWNER] + "\n" + [APN] + "</FNT></CLR>"
    elif [OWNER] == 'PELT PAMELA KAY':
        return "<CLR red='255'><FNT size = '7'>" + [OWNER] + "\n" + [APN] + "</FNT></CLR>"
    elif [OWNER] == 'PELT JONATHAN VAN':
        return "<CLR red='255'><FNT size = '7'>" + [OWNER] + "\n" + [APN] + "</FNT></CLR>"
    elif [OWNER] == 'ROBERTS RICHARD F':
        return "<CLR red='255'><FNT size = '7'>" + [OWNER] + "\n" + [APN] + "</FNT></CLR>"      
    else:
        return [OWNER] + "\n" + [APN]

我想让这个语句更有效,有点类似于if [owner] like %Pelt%if [owner] like %Robert%的SQL查询

现在的python代码太冗长乏味了。 这是ArcPro、GIS软件的标签代码


Tags: 代码sizereturnifdefred语句like
2条回答

Python等价于

owner LIKE '%Pelt%'

是:

'Pelt' in owner

str1str2的子串时,str1 in str2True

如果希望不区分大小写,请使用:

'pelt' in owner.lower() 

如果要搜索多个字符串,可能应该设置另一个变量:

owner_low = owner.lower()

然后进行测试,而不是反复调用lower()

为什么不简单:

OWNERS_LIST = ['PELT KENNETH D', 'PELT PAMELA KAY', 'PELT JONATHAN VAN', 'ROBERTS RICHARD F']

def FindLabel(Area_wl, OWNER, APN):
    if OWNER in OWNERS_LIST:
        return "<CLR red='255'><FNT size = '7'>{}\n{}</FNT></CLR>".format(OWNER, APN)      
    else:
        return "{}\n{}".format(OWNER, APN)     

相关问题 更多 >