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

时间:2021-02-25 07:41:05

标签: python function dictionary operators

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

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

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))

如果那里可能有错误,我道歉,我不得不更改一些变量名称。 我的问题基本上是,<= 在这里究竟是如何工作的?我试着把它分解并写出来 但我似乎无法理解它。预先感谢您的回复。

2 个答案:

答案 0 :(得分:0)

对于集合(和类似于集合的对象,如 .keys() 的结果),<= 运算符的意思是“子集或等于”;数学符号是: ⊆

其他比较<>=>类似地映射到集合的⊂、⊇和⊃。

文档集:https://docs.python.org/3/library/stdtypes.html#frozenset.issubset dict.keys() 的文档:https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects(段落开头“关键视图是类似设置的”)

答案 1 :(得分:0)

dict.keys() 返回 Dictionary view objects 是类似集合的对象。 <= 等效于 issubset set 方法。