簡體   English   中英

使用 dict 從列表中獲取鍵和值

[英]get key and value from a list with dict

我有一個字典列表:

dividends=[
    {"2005":0.18},
    {"2006":0.21},
    {"2007":0.26},
    {"2008":0.31},
    {"2009":0.34},
    {"2010":0.38},
    {"2011":0.38},
    {"2012":0.38},
    {"2013":0.38},
    {"2014":0.415},
    {"2015":0.427}
    ]

我想檢索兩個列表的鍵和值,例如:

年列表 = [2005,2006, 2007,2008,2009,2010...] 股息列表 = [0.18,0.21, 0.26....]

有什么方法可以實現嗎?

謝謝。

假設您的字典總是有一個您正在提取的鍵值對,您可以使用兩個列表推導式:

l1 = [d.values()[0] for d in dividends]
# ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015']

l2 = [d.keys()[0] for d in dividends]
# [0.18, 0.21, 0.26, 0.31, 0.34, 0.38, 0.38, 0.38, 0.38, 0.415, 0.427]

嘗試:

yearslist = dictionary.keys()
dividendlist = dictionary.values()

對於鍵和值:

items = dictionary.items()

也可用於拆分它們:

yearslist, dividendlist = zip(*dictionary.items())

您可以創建兩個列表並在 yearlist 中附加鍵和在股息列表中附加值。

這是代碼。

dividends=[
    {"2005":0.18},
    {"2006":0.21},
    {"2007":0.26},
    {"2008":0.31},
    {"2009":0.34},
    {"2010":0.38},
    {"2011":0.38},
    {"2012":0.38},
    {"2013":0.38},
    {"2014":0.415},
    {"2015":0.427}
    ]

yearlist = []
dividendlist  = []
for dividend_dict in dividends:
    for key, value in dividend_dict.iteritems():
        yearlist.append(key)
        dividendlist.append(value)

print 'yearlist = ', yearlist
print 'dividendlist = ', dividendlist

輸出:

yearlist =  ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015']
dividendlist =  [0.18, 0.21, 0.26, 0.31, 0.34, 0.38, 0.38, 0.38, 0.38, 0.415, 0.427]

第二種使用列表推導式的方法

dividends=[
    {"2005":0.18},
    {"2006":0.21},
    {"2007":0.26},
    {"2008":0.31},
    {"2009":0.34},
    {"2010":0.38},
    {"2011":0.38},
    {"2012":0.38},
    {"2013":0.38},
    {"2014":0.415},
    {"2015":0.427}
    ]

yearlist = [dividend_dict.keys()[0] for dividend_dict in dividends]
dividendlist  = [dividend_dict.values()[0] for dividend_dict in dividends]

print 'yearlist = ', yearlist
print 'dividendlist = ', dividendlist 

輸出:

yearlist =  ['2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015']
dividendlist =  [0.18, 0.21, 0.26, 0.31, 0.34, 0.38, 0.38, 0.38, 0.38, 0.415, 0.427]

暫無
暫無

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

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