擅长:python、mysql、java
<p>由于您对新条目不感兴趣,所以您只需运行第一个文件并收集第一列中的所有条目(在进程中对它们进行计数),然后运行第二个文件,检查在第一步中是否收集了第一列中的任何条目,如果是,也要对它们进行计数。您无法避免运行必要数量的循环来读取这两个文件的所有行,但您可以使用hashmap(<code>dict</code>)进行快速查找,因此:</p>
<pre><code>import csv
import collections
c_phones = collections.defaultdict(int) # initiate a 'counter' dict to save us some typing
with open("AllCredits.csv", "r") as f: # open the file for reading
reader = csv.reader(f) # create a CSV reader
next(reader) # skip the first row (header)
for row in reader: # iterate over the rest
c_phones[row[0]] += 1 # increase the count of the current phone
</code></pre>
<p>既然您已经统计了存储在<code>c_phones</code>字典中的第一个文件中的所有电话号码,那么您应该克隆它,但要重置计数器,以便可以在第二个CSV文件中统计这些号码的出现次数:</p>
^{pr2}$
<p>现在你有两个字典,你有两个计数,你可以很容易地迭代它们,打印出计数</p>
<pre><code>for key in c_phones:
print("{:<15} Credits: {:<4} Purchases: {:<4}".format(key, c_phones[key], p_phones[key]))
</code></pre>
<p>根据您的示例数据,将得出:</p>
<pre>3654 Credits: 1 Purchases: 1
2476 Credits: 2 Purchases: 1 </pre>