2024-03-29 01:12:04 发布
网友
给出:
scooby = [1, 4, 1, 4, 1, 4, 1, 1, 4] snacks = [6,28,14, 3, 9, 8,18, 6, 7] scoobysnacks = zip(scooby,snacks)
如何运行max(scoobysnacks)获取:
max(scoobysnacks)
(1,18) (4,28)
逻辑是,18是与a1相关的最大值,28是与a4相关的最大值。你知道吗
list(dict(sorted(zip(scooby, snacks))).items()) [(1, 18), (4, 28)]
[ (k, max(v)) for k, v in (lambda d, x=defaultdict(list): ([x[k].append(v) for k, v in d], x)) (zip(scooby, snacks))[1].items() ]
这里有一个只遍历列表一次的解决方案,用dict跟踪最佳对。你知道吗
dict
scooby = [1, 4, 1, 4, 1, 4, 1, 1, 4] snacks = [6,28,14, 3, 9, 8,18, 6, 7] pairs= {} for x, y in zip(scooby, snacks): pairs[x] = max(pairs.get(x, y), y) output = list(pairs.items()) output # [(1, 18), (4, 28)]
糟糕的O(n)中的一行
这里有一个只遍历列表一次的解决方案,用
dict
跟踪最佳对。你知道吗相关问题 更多 >
编程相关推荐