如何创建以用户输入的单个符号为键、对应ASCII码为值的字典?
问题分析与解决方案
你的代码存在两个核心问题:
- 参数类型错误:
ord(inp)中的inp是分割后的字符串列表,而ord()仅接受单个字符作为参数,运行时会抛出TypeError。 - 字典值重复:
dict.fromkeys()会将所有键映射到同一个固定值,无法为每个字符生成对应的ord结果。
修正后的代码
推荐使用字典推导式,这是Python中创建这类映射最简洁高效的方式:
inp = input().split() # 不带参数的split()自动处理任意空白,避免空字符串 char_dict = {char: ord(char) for char in inp} print(char_dict)
其他可行写法
如果需要兼容Python 2.x,也可以用生成器表达式配合dict():
inp = input().split() char_dict = dict((char, ord(char)) for char in inp) print(char_dict)
示例运行
输入:a b c
输出:{'a': 97, 'b': 98, 'c': 99}
内容的提问来源于stack exchange,提问作者closedcntr
相关产品推荐
相关产品推荐

