[英]Check if a dictionary is subset of another dictionary
我想比較兩個字符串,並檢查是否在字符串中的所有字符a
存在於字符串b
。 我目前正在使用以下方法,將字符串轉換為字典並將其與另一個字典進行比較。 但是有很多機會它會產生誤報。
x = 'NJITZU THE HANDS OF TIME'
y = 'NinjaGo Masters of Spinjitzu The Hands of Time'
if Counter(x) < Counter(y):
print 'Yes'
else:
print 'No'
請建議任何更好的方法來做到這一點
如果我正確理解您的問題,您不需要比較字典,但設置:
>>> x = 'NJITZU THE HANDS OF TIME'
>>> y = 'NinjaGo Masters of Spinjitzu The Hands of Time'
>>> set(x).issubset(set(y))
False
如果你想要一個不區分大小寫的比較,你可以在兩個字符串上調用lower()
:
>>> set(x.lower()).issubset(set(y.lower()))
True
您還可以使用split()
來比較整個單詞:
>>> set(x.lower().split())
set(['of', 'the', 'time', 'njitzu', 'hands'])
>>> set(x.lower().split()).issubset(set(y.lower().split()))
False
>>> set('SPINJITZU THE HANDS OF TIME'.lower().split()).issubset(set(y.lower().split()))
True
我會使用set
對象。 文檔可以在這里找到。
x = 'NJITZU THE HANDS OF TIME'
y = 'NinjaGo Masters of Spinjitzu The Hands of Time'
if set(x.lower()) <= set(y.lower()):
print('Yes')
else:
print('No')
<
運算符重載為is_subset
。 為了得到打印“是”的答案,我還將字符串轉換為小寫。
您可以使用內置的all函數。
all(character in y for character in x)
如果每個元素都為true,則all()將返回true,否則返回false。 我們使用in
來檢查字符是否在字符串y
,我們將對character in x
每個character in x
執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.