我有一個變量compareout
存儲數據的嵌套列表:我想的Python:串聯和格式化字符串/花車同時寫入到CSV
compareout = [...
[Guyana,951.723423,1037.123424,28.476757,2.991234],
[Bolivia,936.123420,1065.8234236,43.25123,4.62],
[Philippines,925.52342342,1119.62342341,64.70234234,6.991234123],
[Congo (Rep.),907.22342343,1657.52342349,250.1242342,27.571234123],
...]
:
- 排序由第二列升序,將此排序列表的前10個項目寫入.csv
- 按第二列降序排序,將此前10個項目排序列表寫入第二個.csv
然而,我需要格式化輸出,使得所有的浮體只有2位小數,和contcatenate USD到第二和第三列中的值的前面,並添加「%」符號的最後一列的端部值。雖然我可以遍歷「compareout」並替換最後兩個colums是這樣的...
for line in compareout:
avgyrincr = (float(line[2])-float(line[1]))/3
percent = (avgyrincr/float(line[1])) * 100
line.append("%.2f" % avgyrincr)
line.append("%.2f%%" % percent)
我不能做這樣簡單的東西:
for line in ascending:
line[1] = "USD %.2f" % line[1]
line[2] = "USD %.2f" % line[2]
,因爲這不允許排序。目前我有上面的代碼發生在我第一次對第一個文件進行排序和寫入數據之後,但當然我不能按降序排序......另外,我對如何僅指定寫入10個項目感到困惑。 ..
我已經搜索了大約一個小時,似乎無法找到足夠的信息,以確定csv.writerow()函數是否允許在編寫時格式化,並且我已經用完了方法。如果有人能夠給我一些想法,我會最欣賞...
謝謝!這是一種享受。我注意到第二個輸出的'other_lines =(format_row(row)in sorted_values [: - 10] [:: - 1])'對我來說並不適用,所以我用'sorted_values = sorted(compareout,key = operator.itemgetter(1),reverse = True)\ other_lines =(format_row(row)for sorted_values [:10])' – Rookierookie
@Rookierookie D'oh!我在評論中正確地寫了它,但不是在代碼中。 '-10'應該在*之前*指定最後十個元素。固定。 – Bakuriu