python - 如何以正确的顺序打印年月
问题描述
我需要以以下格式在文件中输出数据:年-月,val。它应该按年排序,例如:
2016-1,5
2016-7,1
2016-9,3
2016-11,4
2016-12,2
但是,我得到:
2016-1,5
2016-11,4
2016-12,2
2016-7,1
2016-9,3
代码如下:
for k,v in sorted(dictD.items()):
drow = [k,v]
writer.writerow(drow)
如何获得所需的输出?
解决方案
在连字符处拆分日期并将其转换为数字元组而不是字符串。
for row in sorted(dictD.items(), key = lambda(x): map(int, x[0].split('-'))):
writer.writerow(row)
x
是由(key, value)
返回的元组items()
,键也是如此x[0]
,它是一个日期,如'2016-1'
。split
将其拆分为元组('2016', '1')
,并将map(int)
其转换为整数序列(2016, 1)
。使用它作为排序键将按数字而不是按字典顺序对它们进行排序。
推荐阅读
- android - 在启动 Activity 的 onCreate() 中直接崩溃,因为“指定为非空的参数为空”
- reactjs - 材质 UI 网格在打字稿中未正确显示
- javascript - JS简单数组排序
- python - 使用熊猫按一列一行中的值按字母顺序排列数据框
- sql - 如果 familyID 不是 4 的倍数,则在 SQL 表中创建虚拟填充行以使其如此
- axios - 无法让 Moxios stubRequest 工作
- php - 供用户下载的 CSV 文件,但文件大小停留在 500 KB 左右
- c# - 防止挂在窗体中
- laravel - Laravel 5.5:无法从 .env 文件中读取变量
- azure - -ConnectionTypeName 中的“Azure”和“AzureServicePrincipal”之间的区别