You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将二进制字符串与对应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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:01:13