如何将二进制字符串与对应1的位置集合存入字典并按指定格式输出?
二进制字符串位置集合的字典构建方案
你需要实现的功能是:构建字典D,以输入的二进制字符串为键,setValue(binaryString)返回的'1'位置集合为值,并按指定格式输出。现有代码存在两个核心问题:setValue函数直接打印结果而非返回值,且未将键值对存入字典。
修改后的完整代码
def setValue(binaryString): values = set() for pos, char in enumerate(binaryString): if char == '1': values.add(pos) return values # 改为返回集合,而非直接打印 def main(): D = {} while True: binaryString = input("Input Binary String: ") if binaryString == "exit": break # 直接将输入字符串作为键,setValue的返回值作为值存入字典 D[binaryString] = setValue(binaryString) # 按指定格式输出字典内容 for key, value in D.items(): print(f"{key}: {value}") if __name__ == "__main__": main()
关键修改说明
- 修正
setValue函数:将原来的print(values)改为return values,让函数返回集合供字典存储,而非直接输出结果。 - 简化逻辑填充字典:删除多余的
keys列表,在输入循环中直接把每个二进制字符串作为键,setValue的返回值作为对应的值存入字典D。 - 匹配期望输出格式:遍历字典键值对,用
f-string格式化输出,完全符合你想要的结果样式。
运行示例
输入:
Input Binary String: 10101 Input Binary String: 0 Input Binary String: 1 Input Binary String: 1111 Input Binary String: exit
输出:
10101: {0, 2, 4} 0: set() 1: {0} 1111: {0, 1, 2, 3}
内容的提问来源于stack exchange,提问作者kanelbulle_99
相关产品推荐
相关产品推荐

