擅长:python、mysql、java
<pre><code>>>> List1 = ["apple","peach","grapes","berries"]
>>> List2 = [98,7,47,33]
>>> List1 = [x[1] for x in sorted(zip(List2, List1))]
>>> List2.sort()
>>> List2.append(200)
>>> DictFinal = dict((key, List2[i:i+2]) for i, key in enumerate(List1))
>>> DictFinal
{'berries': [33, 47], 'grapes': [47, 98], 'peach': [7, 33], 'apple': [98, 200]}
</code></pre>
<p>这很简单。这可能更有效一些,尽管只需要一个<code>sort()</code>。如果效率真的很重要,还可以使用itertools对第二个zip进行切片(当然,对于python2,您可能希望使用izip而不是zip)。你知道吗</p>
<pre><code>>>> List1 = ["apple","peach","grapes","berries"]
>>> List2 = [98,7,47,33]
>>> zipped = sorted(zip(List2, List1)) + [(200,)]
>>> FinalDict = dict((x[1], [x[0], y[0]]) for x, y in zip(zipped, zipped[1:]))
</code></pre>