回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是Python新手,在网上还没找到答案</p>
<p><strong>问题:</strong></p>
<p>我有一个很简单的问题,在另一本词典的帮助下翻译一本词典中的关键字</p>
<p><strong>这就是我要做的</strong></p>
<p>我有一个名为“cnt\u domains”的计数器字典,其中包含一些如下所示的条目:</p>
<pre><code>[('p_1002095', 5405), ('p_1002780', 4719), ('p_1002590', 3410), ('p_1200050', 2615), ('', 2514), ('p_1002770', 2256), ('p_1001910', 1726), ('p_1002330', 1178), ('p_1002120', 960), ('p_100
2350', 896), ('p_1002980', 677), ('p_1002810', 592), ('p_1001460', 413), ('p_1002680', 335), ('p_1002630', 188), ('p_1002090', 144), ('p_1002490', 70), ('pc_1175', 43), ('TTTBT"', 26)]
</code></pre>
<p>然后我有另一个字典,包含上面字典中键的明文值,叫做“DictionaryReplaceValues”,它如下所示:</p>
<pre><code>{'p_1002560': 'Utskr-Tätortskarta_Text', 'p_1002600': 'Stadskarta Utskrift', 'p_1002640': 'ESBO', 'p_1002660': 'Kartkombination Baskarta Husnummer', 'p_1002690': 'Ortofoto länet', '
p_442': 'Kulturhistorisk klassificering', 'p_1002730': 'Husnummer', 'p_1002760': 'Tekniska nämndhuset', 'p_1002380': 'Utskr-Kultur_Historisk', 'p_446': 'SB Byggnader och fastigheter', 'p_
1200015': '1930', 'p_1200016': '1934', 'p_1200017': '1940', 'p_1200018': '1956', 'p_1200019': '1976', 'p_1200020': '1855', 'p_1200053': 'K Byggnadsgeologisk karta ca 1980', 'p_1200063': '
K Underlagskarta för grundvattenskydd 1997', 'p_447': 'SB Stockholmskarta o BF', 'p_1200050': 'Park', 'p_1002980': 'Ortofoto 2017', 'p_1002790': 'Stockholmskarta_hybrid_raster', 'p_100281
0': 'Stockholmskarta_gra_forenklad_nt_raster', 'p_1002870': 'Utskr-Markdetaljer_Markhojder_1000', 'p_1001455': 'Fysisk modell', 'p_470': 'FB Byggnader och fastigheter', 'p_471': 'SH Byggn
ader och fastigheter', 'p_448': 'SHAB Karta', 'p_473': 'IDR Idrottsanläggningar', 'p_1002442': 'Kartkombination Planmodul', 'p_422': 'Kartblad', 'p_1200173': 'Kartblad Sweref99 18 00 1000
m-rutor', 'p_1005020': 'Stadens manér', 'p_1003030': 'Kartkombination Fysisk modell', 'p_478': 'SB Parkering nivå ', 'p_490': 'FSK Byggnader och fastigheter', 'p_1200300': 'FB Ackvisition
skarta', 'p_1200301': 'SB Ackvisitionskarta', 'p_1200302': 'SH Ackvisitionskarta', 'p_1002272': 'DigitalOP data', 'p_1004000': 'Kartkombination SHAB', 'p_1200520': 'Stadens manér utokad',
'p_1001951': 'MF Naturvårdsprio', 'p_1005010': 'Kartkombination Stadens manér Total', 'p_1200303': 'Områdesskötsel', 'p_1002570': 'Stockholmskarta_Grå_Public_TS', 'p_1002590': 'Stockholm
skarta_Grå_nedtonad', 'p_1002620': 'Baskarta med fastigheter - utskrift', 'p_419': 'Fastighetskartan WMS', 'p_443': 'TK Upphandlingsområden', 'p_1002710': 'Bygglovkartan', 'p_1200000': '1
625', 'p_1200001': '1642', 'p_1200002': '1702', 'p_1200003': '1733', 'p_1200004': '1751', 'p_1200005': '1805', 'p_1200006': '1828', 'p_1200007': '1863', 'p_1200009': '1899', 'p_1200010':
'1640', 'p_1200012': '1909', 'p_1200013': '1913', 'p_1200023': 'UTGÅR: xxxxxOrtofoto_natbutiken', 'p_1200033': 'K Grundvattenkartan 1996', 'p_1200043': 'K Geotekniska undersökningar', 'p_
1200073': 'K Räddningsverkets stabilitetsutredning 1998', 'p_1200051': 'Kartkombination Park', 'p_1002625': 'Baskarta med fastigheter för VA', 'p_1002780': 'Stockholmskarta_Gra_forenklad_
nedtonad', 'p_1002930': 'Regionskarta_Ajourföring', 'p_1002940': 'Signalering Tk_till_RN', 'p_1200163': 'UTGÅR:DELETEV7-BK-HJD_RH2000', 'p_1002800': 'Stockholmskarta_gra_forenklad_raster'
, 'p_1002820': 'Ortofoto 2015', 'p_1002830': 'Ortofoto 2006', 'p_1002840': 'Ortofoto 2005', 'p_1002850': 'Stadskarta_raster', 'p_1200153': 'Kartkombination Stockholms fastigheter'}
</code></pre>
<p>我试着用明文字典中corresbonding键的值替换counter字典中的键。例如,将“p\u 1002095”替换为“Stockholmskarta\u hybrid\u intern”,使值计数保持不变</p>
<p>所以结果应该是这样的:</p>
<pre><code> [('Stockholmskarta_hybrid_intern', 5405), ('Stockholmskarta_Gra_forenklad_nedtonad', 4719), ('Stockholmskarta_Grå_nedtonad', 3410),.... , ('TTTBT', 26)]
</code></pre>
<p><strong>请注意</strong>在我的计数器字典“cnt\u domains”中有许多键(例如“TTTBT”),但在我的“DictionaryReplaceValues”字典中没有。我想把它们包括在我的新翻译列表“cnt\u domains\u newname”中,但它们当然不应该被翻译成其他东西</p>
<p><strong>这是我的代码:</strong></p>
<pre><code>cnt_domains_newname = dict((DictionaryReplaceValues[key], value) for (key, value) in cnt_domains.items())
</code></pre>
<p>但当我运行它时,当我在cnt\u domains字典(如“TTTBT”)中找到一个DictionaryReplaceValues字典中不存在的键时,它会创建一个KeyError:“TTTBT”</p>