簡體   English   中英

將列表與字典值進行比較

[英]Comparing a list to dictionary values

我應該將一個句子與一組鍵值進行比較,並將句子中的某些單詞與字典對中的相應值進行交換。 這是我到目前為止所擁有的:

keys = input().split(" ")
sentence = input().split(" ")
parent = {}
g = 0
for x in range(len(keys)):
    if x % 2:
        parent[first] = keys[x]
    else:
        first = keys[x]

for k,f in enumerate(sentence):
    if f is parent.keys():
        sentence[k] = parent.get(f,na)
    else:
        g+=1
print(sentence)
print(g)

底部的打印語句只是確認第二個循環正在運行。 我需要整理的其他東西很少,但我現在的主要問題是

for k,f in enumerate(sentence):
    if f is parent.keys():
        sentence[k] = parent.get(f,na)

第一個 if 一直被跳過,我讓我的 print(g) 輸出它所做的循環數; 這是全部。

謝謝!!

正如其他人在評論中所說,你有一個錯字。 if f is parent.keys():應該是if f in parent.keys():或者更簡潔的if f in parent:

此錯誤的原因是parent.keys()生成一個鍵列表,並且您正在嘗試檢查 f 是否與字典的鍵是同一個對象。 您可能試圖做的是檢查字符串 f 是否存在於鍵列表中。

為了將來引用x is y檢查 x 和 y 是否引用同一個對象。 x in y檢查x in y的值是否存在於序列 y 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM