<p>可以使用<a href="https://docs.python.org/3/library/collections.html#collections.defaultdict" rel="nofollow noreferrer">^{<cd1>}</a>对结果进行分组,并将结果与键的所需部分相加,例如,可以使用正则表达式来获得所需部分。大致如下:</p>
<pre><code>In [1]: from collections import defaultdict
In [2]: import re
In [3]: item_dict = {
...: "item_C_v001" : 100,
...: "item_C_v002" : 100,
...: "item_A_v001" : 50,
...: "item_B_v001" : 75
...: }
In [4]: result = defaultdict(int)
In [5]: for key, value in item_dict.items():
...: result[re.search(r"(\w+?)\d+", key).group(1)] += value
In [6]: dict(result)
Out[6]: {'item_A_v': 50, 'item_B_v': 75, 'item_C_v': 200}
</code></pre>
<hr/>
<p>您可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.partition" rel="nofollow noreferrer">^{<cd2>}</a>以不同的方式提取键的所需部分:</p>
<pre><code>>>> key = "item_C_v001"
>>> "".join(key.partition("_v")[:-1])
'item_C_v'
</code></pre>
<p>或者,简单地通过切片,如果数字前的子串长度或字符串末尾的位数是恒定的:</p>
<pre><code>>>> key = "item_C_v001"
>>> key[:8]
'item_C_v'
>>> key[:-3]
'item_C_v'
</code></pre>
<p>或者,将数字右移:</p>
<pre><code>>>> import string
>>> key.rstrip(string.digits)
'item_C_v'
</code></pre>