2017-11-10 200 views
0

Re .lower用法(?),如何为字典值制作不区分大小写的匹配?例如,即使字典仅具有小写字母,config[camID]["media_file"]]也应该匹配小写和大写扩展名。字典值的大小写不敏感匹配

1从字典行:

config['d5']['media_file'] = ('nef', 'jpg', 'avi') 

代码:

for f in files: 
    if any([f.endswith(x) for x in config[camID]["media_file"]]): 
     os.rename(os.path.join(path, f), 
        os.path.join(path, "%s%s%s" % (config[camID]['cam_name'], "_", f))) 

(如果有一个 “在词典” 溶液(即,而不是在代码),这将是还有趣要知道。)

+1

使用'f.lower()。endswith(x)'? –

+1

检查https://stackoverflow.com/questions/17355312/case-insensitive-string-search-of-dictionary – user5702319

回答

2

你需要将数据转换为标准之前存储在字典(如下)。在存储之后,无法在字典集内搜索不区分大小写的内容,因为此搜索是通过散列进行的。