Python字典键输出优化:去除列表推导式结果的括号与引号
解决方法
快速修复现有代码
你当前的问题是使用了列表推导式,它返回的是一个包含单个元素的列表,所以输出会带方括号和引号。只需提取这个列表的第一个元素即可:
def display_number_report(start, stop): even_or_odd = {'odd': [],'even': []} number_list = [int(num) for num in range(start,stop+1)] for number in number_list: even_or_odd['odd'].append(number) if number%2!=0 else even_or_odd['even'].append(number) for num in number_list: # 提取列表中的唯一元素 print(f'{num}: {[key for key, value in even_or_odd.items() if num in value][0]}') display_number_report(10,20)
更高效的优化方案
其实不需要先构建字典再反向查找,直接在遍历数字时判断奇偶性,代码更简洁高效:
def display_number_report(start, stop): for num in range(start, stop+1): status = 'even' if num % 2 == 0 else 'odd' print(f'{num}: {status}') display_number_report(10,20)
内容的提问来源于stack exchange,提问作者Hector Harris
相关产品推荐
相关产品推荐

