Python 列表 integrateUpper/Lowercase 检查?

Python list integrateUpper/Lowercase check?

我目前使用以下代码从数据框中 select 行:

list = ['3d block','3D Block','3D block','3d Block','cafe','Cafe']
data[data['description'].str.contains('|'.join(list))]

如您所见,我目前对 upper/lowercase 实施了不同的查询,因为我意识到“3d 打印”并不真正匹配所有相关项目。

是否可以改进或缩短上面的代码,以便列表包含 upper/lowercase 个字符的所有可能变体,包括一个和两个单词?

您可以使用 string.lower() 函数

将它们全部转换为更低的

让您的列表只包含小写字符。但是您也可以对此进行安全检查

my_list=['3d block', 'cafe']

# As karthik suggested, just to be safe, convert your list to lowercase
for i in range(len(my_list)):
    my_list[i]=ele.lower()

my_query='3D bLoCk'
if my_query.lower() in my_list:
    print('yes')

打印yes

您可以通过将 case 参数作为 False:

传递来进行 case InSeNsitIvE 选择
lst = ['3D Block', 'cafe']
data[data['description'].str.contains('|'.join(lst), case=False)]

切记不要使用 list 作为名称,因为这会影响内置 list 函数,并使其在您的代码中无法使用。


参考:

pandas.Series.str.contains