37,719
社区成员
发帖
与我相关
我的任务
分享
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from collections import namedtuple
from random import choice
APK = namedtuple('APK', 'package_name version_code apk_file')
# generate some sample data
sample_list = []
for i in range(100):
package_name = choice('abcd') + choice('12345')
version_code = choice([1 , 2, 3, 4, 5])
apk_file = '/apkdir/{}/v{}/{}.apk'.format(package_name, version_code, package_name)
sample_list.append(APK(package_name, version_code, apk_file))
print(sample_list)
latest_apks = {}
for apk in sample_list:
existing_apk = latest_apks.get(apk.package_name, None)
if (existing_apk is None) or (existing_apk.version_code < apk.version_code):
latest_apks[apk.package_name] = apk
print(latest_apks)
[APK(package_name='b2', version_code=3, apk_file='/apkdir/b2/v3/b2.apk'), APK(package_name='b4', version_code=1, apk_file='/apkdir/b4/v1/b4.apk'), APK(package_name='b4', version_code=1, apk_file='/apkdir/b4/v1/b4.apk'), APK(package_name='b5', version_code=5, apk_file='/apkdir/b5/v5/b5.apk'), APK(package_name='c1', version_code=4, apk_file='/apkdir/c1/v4/c1.apk'), APK(package_name='d1', version_code=3, apk_file='/apkdir/d1/v3/d1.apk'), APK(package_name='a3', version_code=4, apk_file='/apkdir/a3/v4/a3.apk'), APK(package_name='d2', version_code=3, apk_file='/apkdir/d2/v3/d2.apk'), APK(package_name='b5', version_code=5, apk_file='/apkdir/b5/v5/b5.apk'), APK(package_name='b1', version_code=3, apk_file='/apkdir/b1/v3/b1.apk'), APK(package_name='b4', version_code=2, apk_file='/apkdir/b4/v2/b4.apk'), APK(package_name='a5', version_code=4, apk_file='/apkdir/a5/v4/a5.apk'), APK(package_name='d5', version_code=1, apk_file='/apkdir/d5/v1/d5.apk'), APK(package_name='a5', version_code=1, apk_file='/apkdir/a5/v1/a5.apk'), APK(package_name='a2', version_code=3, apk_file='/apkdir/a2/v3/a2.apk'), APK(package_name='c4', version_code=5, apk_file='/apkdir/c4/v5/c4.apk'), APK(package_name='a4', version_code=5, apk_file='/apkdir/a4/v5/a4.apk'), APK(package_name='b2', version_code=5, apk_file='/apkdir/b2/v5/b2.apk'), APK(package_name='a3', version_code=4, apk_file='/apkdir/a3/v4/a3.apk'), APK(package_name='a4', version_code=1, apk_file='/apkdir/a4/v1/a4.apk')]
{'b2': APK(package_name='b2', version_code=5, apk_file='/apkdir/b2/v5/b2.apk'), 'b4': APK(package_name='b4', version_code=2, apk_file='/apkdir/b4/v2/b4.apk'), 'b5': APK(package_name='b5', version_code=5, apk_file='/apkdir/b5/v5/b5.apk'), 'c1': APK(package_name='c1', version_code=4, apk_file='/apkdir/c1/v4/c1.apk'), 'd1': APK(package_name='d1', version_code=3, apk_file='/apkdir/d1/v3/d1.apk'), 'a3': APK(package_name='a3', version_code=4, apk_file='/apkdir/a3/v4/a3.apk'), 'd2': APK(package_name='d2', version_code=3, apk_file='/apkdir/d2/v3/d2.apk'), 'b1': APK(package_name='b1', version_code=3, apk_file='/apkdir/b1/v3/b1.apk'), 'a5': APK(package_name='a5', version_code=4, apk_file='/apkdir/a5/v4/a5.apk'), 'd5': APK(package_name='d5', version_code=1, apk_file='/apkdir/d5/v1/d5.apk'), 'a2': APK(package_name='a2', version_code=3, apk_file='/apkdir/a2/v3/a2.apk'), 'c4': APK(package_name='c4', version_code=5, apk_file='/apkdir/c4/v5/c4.apk'), 'a4': APK(package_name='a4', version_code=5, apk_file='/apkdir/a4/v5/a4.apk')}