纯粹的[(0,1),(0,0),(2,2),(0,1)]这种我会,但是改成下述的就搞不定了

s=[('da2', u'da2 (600.1 GB)[slot(0, 3)]'), ('da0', u'da0 (2.0 TB)[slot(1, 1)]'), ('da1', u'da1 (2.0 TB)[slot(1, 2)]'), ('da3', u'da3 (2.0 TB)[slot(0, 2)]'), ('da5', u'da5 (2.0 TB)[slot(1, 3)]'), ('da16', u'da16 (2.0 TB)[slot(0, 1)]'), ('da17', u'da17 (2.0 TB)[slot(0, 0)]'), ('da18', u'da18 (2.0 TB)[slot(3, 2)]'), ('da19', u'da19 (2.0 TB)[slot(3, 1)]'), ('da20', u'da20 (2.0 TB)[slot(3, 0)]'), ('da21', u'da21 (2.0 TB)[slot(2, 0)]'), ('da22', u'da22 (2.0 TB)[slot(2, 1)]'), ('da23', u'da23 (2.0 TB)[slot(2, 2)]'), ('da24', u'da24 (15.5 GB)[slot(0, 0)]')]

根据slot(0,0)排序,结果是slot(0,0),slot(0,1)......

慕哥6287543
浏览 94回答 1
1回答

慕慕森

写个cmp函数就可以了def t(x,y):        return cmp(x[1][-7:],y[1][-7:])s.sort(cmp=t)print s
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python