擅长:python、mysql、java
<pre><code>list1 = ['serentity01_20malcolm_200_+3.jpg','inara03_kaley40_8000_-1.jpg']
list2 = ['inara03_summer40_8000_-2.jpg', 'book23_42jayne_400_+2.jpg', 'summer53_21simon_300_-1.jpg']
def getNum(image_name_list):
for s in image_name_list:
s = s.split('_')[2]
if s.isdigit():
yield s
else:
yield None
def getMatchingIndex(list1, list2):
other_list = list(getNum(list2))
for (i, num) in enumerate(getNum(list1)):
if not num:
continue
for (j, other_num) in enumerate(getNum(list2)):
if (num == other_num):
yield (i, j)
for i1, i2 in getMatchingIndex(list1, list2):
print list1[i1], list2[i2]
</code></pre>
<p>因为我们每次只需要比较第二个列表中的一个项目,所以我在getNum中使用了一个生成器来节省内存。因为一个数字可能不止一次匹配,所以我一直在检查每一项。在</p>