python - 更改列表中每个第 n 个索引的值
问题描述
我想编写一些解决这个“谜题”的代码。
有 24 名囚犯,每个人都有自己的牢房。守卫想给一些囚犯一些空闲时间。由于所有牢房的门都关着,他走到每一扇门前,一一打开。第二次,他对每个第二扇门都这样做。第三次,每第三个门。他重复了 24 次。如果一扇门关闭,它就会打开。如果它被打开,它会被关闭。
我试图自己编写代码,但我无法让它工作。
这是我写的:
All_Doors = [True] * 24 # Closed = True, Open = False
for Door in All_Doors:
for Guard in range(1,25):
All_Doors[::Guard] = False if True else True
print(All_Doors)
我收到此错误:TypeError: can only assign an iterable
解决方案
尝试这个:
All_Doors = [True] * 24 # Closed = True, Open = False
for Guard in range(1,25):
for current_door in range(Guard,25,Guard):
All_Doors[current_door-1] = not All_Doors[current_door-1]
print(All_Doors)
我的输出:
[False, True, True, False, True, True, True, True, False, True, True, True, True, True, True, False, True, True, True, True, True, True, True, True]
答案是有道理的,因为所有与其他数字平方的数字都是封闭的 - (1,4,9,16) 指数。因为它们有奇数个乘数。
推荐阅读
- django - Django 从数据库中获取随机对象
- java - Azure Webapp Java Rest API 端点不起作用
- python - 我想在Python循环中的每个图旁边绘制每个图例
- c# - 线程进程在执行完整代码之前退出
- applescript - 在applescript中设置时间码
- unicode - 终端中缺少 Unicode 字符
- python - python请求没有得到整页
- powershell - Powershell 和 Web 服务:其中一个参数是 DateTime……我怎样才能传递那个值?
- reactjs - 如何在 Fable 中实例化自定义 React 组件?
- azure-pipelines - 在作业模板中,如何根据模板参数更改作业名称?