簡體   English   中英

字典中的Python初學者問題

[英]Python beginner issue in dictionary

      def myDict(key1, value1, key2, value2, value3, key3):
         # Write your code here
           a={key1:value1}
           print(a)
           a[key2]=value2
           print(a)
           a[key1]=value3
           print(a)
           a[key3]
           print(a)

      if __name__ == '__main__':
        key1 = 'name'
        value1 = 'rajesh'
        key2 = 'age'
        value2 = '21'
        value3 = 'vignesh'
        key3 = 'age'
        mydct = myDict(key1, value1, key2, value2, value3, key3)
        print(mydct if type(mydct) == dict else "Return a dictionary")
    

驅動程序功能是預先定義的。 預期的輸出是:

    {'name': 'rajesh'}
    {'name': 'rajesh', 'age': '21'}
    {'name': 'vignesh', 'age': '21'}
    {'name': 'vignesh'}

但我越來越像:

    {'name': 'rajesh'}
    {'name': 'rajesh', 'age': '21'}
    {'name': 'vignesh', 'age': '21'}
    {'name': 'vignesh'}
    Return a dictionary

我在做什么錯誤?

將以下內容添加到 myDict 的底部:

    return a

沒有它, myDict隱式返回None ,這就是您所看到的。

你錯過了這兩行:

    del a[key3]
    return a

這是完整的邏輯:

def myDict(key1, value1, key2, value2, value3, key3):
        a={key1:value1}
        print(a)
        a[key2]=value2
        print(a)
        a[key1]=value3
        print(a)
        del a[key3]
        return a

只需在 def 函數的最后一行添加return a 即可 我試過了,它得到了你想要的。 如前所述,如果您不在函數末尾放置 return 語句,則會得到一個 NoneType 對象,即它不會將您的mydct對象識別為字典,而是打印 else 語句,如您之前所說。

def myDict(key1, value1, key2, value2, value3, key3):
 # Write your code here
   a={key1:value1}
   print(a)
   a[key2]=value2
   print(a)
   a[key1]=value3
   print(a)
   a[key3]
   print(a)
   return a

if __name__ == '__main__':
    key1 = 'name'
    value1 = 'rajesh'
    key2 = 'age'
    value2 = '21'
    value3 = 'vignesh'
    key3 = 'age'
    mydct = myDict(key1, value1, key2, value2, value3, key3)
    print(mydct if type(mydct) == dict else "Return a dictionary")

你把最后一條語句改成什么

Del a[key3]
Return a

它會給出正確的輸出。

暫無
暫無

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

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