首页 > 解决方案 > Python遍历列表列表

问题描述

这是我的代码

stockList = [
    ['AMD', '57.00', '56.23', '58.40', '56.51'],
    ['AMZN', '3,138.29', '3,111.03', '3242.56689', '3,126.58'],
    ['ATVI', '80.76', '79.16', '81.86', '79.55'],
    ['BA', '178.63', '168.86', '176.96', '169.70'],
    ['BAC', '24.42', '23.43', '23.95', '23.54'],
    ['DAL', '26.43', '25.53', '26.87', '25.66'],
    ['FB', '241.75', '240.00', '248.06', '241.20'],
    ['GE', '7.04', '6.76', '6.95', '6.79'],
    ['GOOGL', '1,555.92', '1,536.36', '1,576.03', '1,544.04'],
    ['GPS', '12.77', '12.04', '12.72', '12.10'],
    ['GRUB', '70.96', '69.71', '70.65', '70.06'],
    ['HD', '262.42', '258.72', '261.81', '260.01'],
    ['LUV', '33.62', '32.45', '33.53', '32.61'],
    ['MSFT', '208.75', '206.72', '213.58', '207.76'],
    ['MU', '51.52', '50.49', '52.31', '50.74'],
    ['NFLX', '490.10', '492.26', '511.52', '494.72', 'SUCCESS'],
    ['PCG', '9.49', '8.96', '9.52', '9.01'],
    ['PFE', '36.69', '35.87', '37.02', '36.05'],
    ['QQQ', '264.00', '263.27', '267.11', '264.58', 'SUCCESS'],
    ['ROKU', '153.36', '148.37', '153.70', '149.11'],
    ['SHOP', '952.83', '976.45', '1,036.25', '981.33', 'SUCCESS'],
    ['SPY', '325.01', '323.64', '325.47', '325.25', 'SUCCESS'],
    ['SQ', '126.99', '125.13', '130.80', '125.76'],
    ['T', '30.25', '29.58', '30.07', '29.73'],
    ['TSLA', '1,568.36', '1,646.56', '1,712.58', '1,654.79', 'SUCCESS'],
    ['TTWO', '153.06', '152.45', '154.47', '153.22', 'SUCCESS'],
    ['TWTR', '37.01', '36.03246', '36.7210083', '36.21'],
    ['WFC', '26.20', '24.45272', '25.0438213', '24.57'],
    ['WMT', '132.33', '130.8515', '132.522049', '131.51']
]

keyword = 'SUCCESS'
secondList = []
for item in stockList:
    if item[4] == keyword:
        secondList.append(stockList[0])
print(secondList)

我的用例是,通过这个列表列表,找到包含关键字的列表,从那里发送列表中的第一项。我可以用一个列表来获得它,但是我不能用列表列表来做到这一点。

最重要的是,我将如何浏览包含列表的字典?

{
    'majorDimension': 'ROWS',
    'range': 'Sheet1!A2:F30',
    'values': [
        ['AMD', '57.00', '56.23', '58.40', '56.51'],
        ['AMZN', '3,138.29', '3,111.03', '3242.56689', '3,126.58'],
        ['ATVI', '80.76', '79.16', '81.86', '79.55'],
        ['BA', '178.63', '168.86', '176.96', '169.70'],
        ['BAC', '24.42', '23.43', '23.95', '23.54'],
        ['DAL', '26.43', '25.53', '26.87', '25.66'],
        ['FB', '241.75', '240.00', '248.06', '241.20'],
        ['GE', '7.04', '6.76', '6.95', '6.79'],
        ['GOOGL', '1,555.92', '1,536.36', '1,576.03', '1,544.04'],
        ['GPS', '12.77', '12.04', '12.72', '12.10'],
        ['GRUB', '70.96', '69.71', '70.65', '70.06'],
        ['HD', '262.42', '258.72', '261.81', '260.01'],
        ['LUV', '33.62', '32.45', '33.53', '32.61'],
        ['MSFT', '208.75', '206.72', '213.58', '207.76'],
        ['MU', '51.52', '50.49', '52.31', '50.74'],
        ['NFLX', '490.10', '492.26', '511.52', '494.72', 'SUCCESS'],
        ['PCG', '9.49', '8.96', '9.52', '9.01'],
        ['PFE', '36.69', '35.87', '37.02', '36.05'],
        ['QQQ', '264.00', '263.27', '267.11', '264.58', 'SUCCESS'],
        ['ROKU', '153.36', '148.37', '153.70', '149.11'],
        ['SHOP', '952.83', '976.45', '1,036.25', '981.33', 'SUCCESS'],
        ['SPY', '325.01', '323.64', '325.47', '325.25', 'SUCCESS'],
        ['SQ', '126.99', '125.13', '130.80', '125.76'],
        ['T', '30.25', '29.58', '30.07', '29.73'],
        ['TSLA', '1,568.36', '1,646.56', '1,712.58', '1,654.79', 'SUCCESS'],
        ['TTWO', '153.06', '152.45', '154.47', '153.22', 'SUCCESS'],
        ['TWTR', '37.01', '36.03246', '36.7210083', '36.21'],
        ['WFC', '26.20', '24.45272', '25.0438213', '24.57'],
        ['WMT', '132.33', '130.8515', '132.522049', '131.51'],
    ]
}

标签: python-3.xlistnested-lists

解决方案


列表理解使这变得非常简单。尝试以下操作:

keyword = "SUCCESS"

# PEP8 calls for lower_underscore_case here
second_list = [i[0] for i in stockList if keyword in i]

print(second_list)

对于建议的字典结构,您只需访问包含列表的键,因为并非该字典中的每个值都是列表:

second_list = [i[0] for i in stockList["values"] if keyword in i]

推荐阅读