嵌套for循环以创建列表列表

时间:2017-06-27 18:30:56

标签: list python-3.x for-loop

我有以下代码,作为Python的新手,我希望有关于使其更具Pythonic的建议。 this thread中的海报提供了非常有用的numpy和列表理解解决方案;但是,我想改进我更基本的嵌套循环解决方案,仅仅是为了通过基本的Python任务变得更好(如果我应该在之前的线程中发布它而不是开始新的半复制,请告诉我。 ..这是我应该做的事情。

这是当前代码(按预期工作):

sales_data = [[201703, 'Bob', 3000], [201703, 'Sarah', 6000], [201703, 
'Jim', 9000], [201704, 'Bob', 8000], [201704, 'Sarah', 7000], [201704, 
'Jim', 12000], [201705, 'Bob', 15000], [201705, 'Sarah', 14000], [201705, 
'Jim', 8000], [201706, 'Bob', 10000], [201706, 'Sarah', 18000]]

sorted_sales_data = sorted(sales_data, key=lambda x: -x[2])
date_list = []
sales_ranks = []

for i in sales_data:
    date_list.append(i[0])

sorted_dates = sorted(set(date_list), reverse=True)

for i in sorted_dates:
    tmp_lst = []
    tmp_lst.append(i)
    for j in sorted_sales_data:
        if j[0] == i:
            tmp_lst.append(j[1])
    sales_ranks.append(tmp_lst)

print(sales_ranks)

任何关于使这更多Pythonic(除了numpy或列表理解解决方案)的建议将不胜感激。我使用的是Python 3.6。

0 个答案:

没有答案