如何将字典转换为元组以适配字符串endswith()方法
解决字典keys适配endswith()方法的问题
这问题我之前也碰到过,其实解法很简单——你只需要把字典的keys转成元组就行!
为什么之前的方法行不通?
- 直接用
dictMnths.keys():Python里dict.keys()返回的是dict_keys视图对象,不是endswith()要求的字符串或字符串元组,所以会触发TypeError。 - 把
dict_keys转成字符串:比如str(dictMnths.keys())会生成类似"dict_keys(['Jan', 'Feb', ...])"的字符串,这显然和你要匹配的结尾(比如Feb)不沾边,自然返回False。
正确的转换方法
直接用tuple()把dict_keys对象转成字符串元组就行,代码示例如下:
import calendar # 你的原字典 dictMnths = dict((v,k) for k,v in enumerate(calendar.month_abbr)) # 转成endswith()接受的元组格式 month_tuple = tuple(dictMnths.keys()) # 测试调用 print('aaFeb'.endswith(month_tuple)) # 输出 True
额外说明
这里要注意:endswith()的第一个参数只接受字符串或者字符串组成的元组,列表是不行的,所以必须转成元组(直接tuple()一步到位最高效)。
内容的提问来源于stack exchange,提问作者Konrad
相关产品推荐
相关产品推荐

