将字典元组键转为字符串键时遇TypeError问题求助
解决字典元组键转字符串键的TypeError问题
错误原因是元组键里的元素不全是字符串类型(比如存在float),str.join()要求所有序列元素必须是字符串,直接拼接会触发类型错误。
修正后的代码:
new_dct = {} for k, v in dicts.items(): new_dct[','.join(str(item) for item in k)] = v
或者用更简洁的字典推导式:
new_dct = {','.join(str(item) for item in k): v for k, v in dicts.items()}
这段代码通过生成器表达式把元组里的每个元素都转为字符串,再用逗号拼接成新的字符串键,无论元组里是字符串、数字还是其他可转字符串的类型,都能正常处理。比如你的示例字典{("name1", "name2", "name3"):256},运行后会得到目标结果{"name1,name2,name3":256}。
内容的提问来源于stack exchange,提问作者jpy
相关产品推荐
相关产品推荐

