我有以下代码,作为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。