簡體   English   中英

如何將多個元組中的第一個元素作為字典中的鍵返回

[英]how to return first element in multiple tuples as keys in dictionary

例如,如果

a = {('a','b','c'):2, ('b','c','d'):3}

我想只返回'a','b'

我試過了:

for key in a:

    return key[0]

但它只返回'a'

是否有一種正確的方法來查找第一個元素而不使用lambda或counter或類似的東西(這是python中的基本課程)。 所以,沒有其他輸入程序。

函數(以及你的for循環)在return立即結束。 您應該將值存儲在列表中,然后返回該值。 就像是:

def getFirstElems(dic):
    firstElems = []
    for key in dic:
        firstElems.append(key[0])
    return firstElems

然后,如果你像這樣運行該函數:

a = {('a','b','c'):2, ('b','c','d'):3}
elem1, elem2 = getFirstElems(a)
print "elem1:", elem1
print "elem2:", elem2

你得到這個輸出:

elem1: a
elem2: b

你想要這樣的東西嗎?

In [4]: a = {('a','b','c'):2, ('b','c','d'):3}

In [5]: [key[0] for key in a.keys()]
Out[5]: ['a', 'b']

您的代碼的問題是return語句...您應該在返回之前保留所有結果...

如果你每次都可以使用generators你想要個別元素

In [19]: def mygenerator():
   ....:     a = {('a','b','c'):2, ('b','c','d'):3}
   ....:     for k in a.keys():
   ....:         yield k[0]
   ....:

In [20]: mg = mygenerator()

In [21]: print(mg)
<generator object mygenerator at 0x035FA148>

In [22]: for i in mg:
   ....:     print i
   ....:
a
b

從我可以告訴你想要循環鍵盤的鍵。 嘗試

for k in a.keys():

暫無
暫無

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

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