比较运算符如何影响字典上的结果?Python 3.8



我的情况与我所看到的略有不同,因此我请求一些帮助来理解。

我正在做一个问题,我需要检查列表中的一些字符是否在字符串中。我还在学习过程中,所以我想,为了能够解释任何列表和任何字符串输入时,我应该将它们转换为具有相同值的字典,并比较两者,因为我认为这样会更容易。我在比较部分最后遇到了困难,但是当我用<=比较字典的键时,它工作了。下面是代码

string = 'trleba' 
listofchar = ['a', 'b', 'e', 'l', 'r', 't']
def isItInIt(string, listofchar):
letters = {}
stringtoletter = {}
for c in listofchar:
if c not in letters:
letters[c] = 1
else:
letters[c] += 1
for e in list(string):
if e not in stringtoletter:
stringtoletter[e] = 1
else:
stringtoletter[e] += 1
if stringtoletter.keys() <= letters.keys():
return True
else:
return False
print(isItInIt(string, listofchar))

我很抱歉,如果可能有一个错误在那里,我不得不改变周围的一些变量名称。我的问题是,<=到底是怎么起作用的?我试着把它分解并写出来但我似乎无法理解。提前感谢您的回复。

对于集合(以及类似于集合的对象,如.keys()的结果),<=运算符表示"子集"或"等于";数学符号为:怪诞

其他比较<,>=,>类似地映射到集合的∧,∧和∧。

set的文档:https://docs.python.org/3/library/stdtypes.html#frozenset.issubsetdict.keys()的文档:https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects(段落开始"键视图是set-like">

dict.keys()返回Dictionary视图对象,它是类集合对象。<=等价于is子集set方法。

最新更新