如何将Python字典中的全名键转换为缩写首字母?
问题
已有Python字典:
d1 = {'James Williams': 123, 'Adrian Falkenheim': 345}
需要得到目标字典:
d2 = {'JW':123, 'AF':345}
已尝试用for循环和split获取首字母,但不清楚如何生成目标字典。
解决方案
方法1:字典推导式(简洁高效)
这是最Pythonic的写法,直接遍历原字典的键值对,对名字拆分后取首字母拼接作为新键:
d1 = {'James Williams': 123, 'Adrian Falkenheim': 345} d2 = {''.join(word[0] for word in name.split()): val for name, val in d1.items()}
遍历每个name, val键值对,将名字按空格拆分为单词列表,取每个单词的首字母拼接成缩写,作为新字典的键,对应原数值。
方法2:普通for循环(贴合你的尝试)
如果习惯分步处理,用for循环逐个构建新字典:
d1 = {'James Williams': 123, 'Adrian Falkenheim': 345} d2 = {} for name, val in d1.items(): # 拆分名字为单词列表 name_parts = name.split() # 拼接每个单词的首字母 initials = ''.join(part[0] for part in name_parts) # 将键值对存入新字典 d2[initials] = val
先初始化空字典d2,遍历原字典的每个键值对,处理名字得到首字母缩写后,把新键值对添加到d2中。
内容的提问来源于stack exchange,提问作者shihuijing he
相关产品推荐
相关产品推荐

