我的情况与我所看到的略有不同,因此我请求帮助理解。
我正在做一个问题,我需要检查列表中的某些字符是否在字符串中。 我还在学习过程中,所以我认为为了能够解释任何列表和任何 字符串输入,我应该将它们转换为具有相同值的字典并比较两者,因为我认为这会更容易。我在比较部分最后被卡住了,但是当我将字典的键与 <= 进行比较时,它起作用了。这是代码,
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))
如果那里可能有错误,我道歉,我不得不更改一些变量名称。 我的问题基本上是,<= 在这里究竟是如何工作的?我试着把它分解并写出来 但我似乎无法理解它。预先感谢您的回复。
答案 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 方法。