擅长:python、mysql、java
<p>与大规模嵌套的循环方法和跟踪一堆列表索引不同,我将建立一个成对的列表,这样您就可以轻松地测试它们以前是否出现过(除非您将遇到内存问题,否则复制/修改数据不会有任何伤害)。你知道吗</p>
<pre><code>requests = [
[1,9,11,15,20,3],
[2,29,22,5,21,8],
[3,2,30,16,27,2],
[4,21,17,25,6,4],
[5,15,2,18,6,24],
[6,1,18,19,29,4],
[7,30,17,30,18,15],
[8,10,2,6,26,12],
[9,21,30,12,29,14]
]
all_pairs = []
#create one big list of pairs
for person in requests:
pairs = []
user_id = person[0]
for other_person in person[1:]:
pairs.append({user_id, other_person}) # add to the list of pairs (we use set so the order of the pair doesn't matter)
all_pairs += pairs #add the pairs from one person to the global list
matches = []
#iterate over that list and check if we've seen that pair before
for index, pair in enumerate(all_pairs):
if pair in pairs[:index]: #if we've seen it before
matches.append(pair) #add it to our matches (if a pair is encountered a third time, it'll be added to matches twice)
</code></pre>
<p>这可以写得更简洁、更高效,但我的目标是让它更容易理解流程。你知道吗</p>