我有两个专辑名称列表,按分数排序。

albums_today = ['album1', 'album2', 'album3']
albums_yesterday = ['album2', 'album1', 'album3']

我如何计算列表顺序的变化并得到类似
{'album1':1, 'album2':-1, 'album3':0}

最佳答案

>>> albums_today = ['album1', 'album2', 'album3']
>>> albums_yesterday = ['album2', 'album1', 'album3']
>>> D = dict((k,v) for v,k in enumerate(albums_yesterday))
>>> dict((k,D[k]-v) for v,k in enumerate(albums_today))
{'album1': 1, 'album3': 0, 'album2': -1}

在Python2.7或Python3中,它甚至可以更简单地编写
>>> albums_today = ['album1', 'album2', 'album3']
>>> albums_yesterday = ['album2', 'album1', 'album3']
>>> D = {k:v for v,k in enumerate(albums_yesterday)}
>>> {k:D[k]-v for v,k in enumerate(albums_today)}
{'album1': 1, 'album3': 0, 'album2': -1}

关于python - 快速计算两个列表的增量的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4251732/

10-11 00:35