如何基于布尔数组的取值打印另一数组对应位置的数值
修正后可运行的实现代码
原代码存在字典未闭合、键名不匹配、未逐位遍历数组匹配值的问题,修正后实现逻辑如下:
times = { "times1": ["8","9","10","11","12","13","14","15","16","17"], "times2": ["8","9","10","11","12","13","14","15","16","17"], "times3": ["8","9","10","11","12","13","14","15","16","17"], "times4": ["8","9","10","11","12","13","14","15","16","17"], "times5": ["8","9","10","11","12","13","14","15","16","17"], "times6": ["8","9","10","11","12","13","14","15","16","17"], "times7": ["8","9","10","11","12","13","14","15","16","17"], "times8": ["8","9","10","11","12","13","14","15","16","17"] } access = { "access1": [True,False,False,True,True,False,False,False,True,True], "access2": [False,False,True,True,False,False,False,False,True,True], "access3": [False,False,False,True,True,False,True,False,True,False], "access4": [True,True,False,True,True,True,False,False,True,True], "access5": [True,False,False,True,True,False,False,False,True,False], "access6": [True,False,False,True,True,False,True,True,False,True], "access7": [True,True,True,True,True,False,False,False,True,True], "access8": [True,False,True,True,False,False,False,False,True,True] } # 按编号匹配对应球场的时间数组和状态数组 for idx in range(1,9): time_arr = times[f"times{idx}"] access_arr = access[f"access{idx}"] print(f"球场{idx}不可用时段:") # 逐位配对时间和状态,状态为False时打印对应时间 for time_val, access_val in zip(time_arr, access_arr): if not access_val: print(f"{time_val}点") print("---")
如果仅需要输出时间值不需要额外说明,可以简化循环逻辑:
for idx in range(1,9): for t, a in zip(times[f"times{idx}"], access[f"access{idx}"]): if not a: print(t)
内容的提问来源于stack exchange,提问作者Raphael Nogueira Costa
相关产品推荐
相关产品推荐

