python - 座椅系统,python中的循环问题
问题描述
我正在用 Python 制作一个座位应用程序,它会列出 10 个名字并给每个学生一个座位。座位是2排5个座位。
我写了一个简单的脚本来做到这一点,但我被困在为学生们循环座位上。这是我的代码:
from pprint import pprint as pp
C = "ABCDE"
R = range(0, 2)
students= ["rob", "tim", "kaleb", "josh", "victoria", "amy", "fred", "xander", "cody", "dump man"]
seats = [{str(y)+ltr:"EMPTY" for ltr in C} for y in R]
for names in range(10):
for i in range(2):
for letters in C:
for s in range(1):
print(f'{i}{letters}')
seats[i][f"{i}{letters}"]=students[names]
pp(seats)
如您所见,在循环中,我正在遍历 SEATS 的字母和数字。但是,在迭代学生姓名时,它总是给我 10。请您帮忙!
解决方案
这应该有效:
C = "ABCDE"
number_of_rows = 2
R = range(number_of_rows)
seats_per_row = 5
students= ["rob", "tim", "kaleb", "josh", "victoria", "amy", "fred", "xander", "cody", "dump man"]
seats = [{str(y)+ltr:"EMPTY" for ltr in C} for y in R]
for row in range(number_of_rows):
for seat in range(seats_per_row):
letter = C[seat]
name = students[row * seats_per_row + seat]
seats[row][f"{row}{letter}"]=name
print(seats)
输出:
[{'0A': 'rob', '0B': 'tim', '0C': 'kaleb', '0D': 'josh', '0E': 'victoria'}, {'1A': 'amy', '1B': 'fred', '1C': 'xander', '1D': 'cody', '1E': 'dump man'}]
推荐阅读
- linux - 向 docker 添加新用户并限制其权限
- cmd - 将 lua.exe 添加到我的系统路径
- scala - What is the efficient way to remove subsets from a List[List[String]]?
- r - 如何并行化代码以对 R 中的列表进行排序和求和?
- git - 如何恢复 git 冲突
- javascript - 在 HTML Escape Javascript 字符串之后是否需要“清理”?
- hadoop - 配置单元列检查字符串“null”和真正的 NULL
- python - 从文件名中取出除数字之外的所有内容
- eyeshot - 加入简单的多边形并在 Eyeshot 中绘制生成的轮廓
- python - conda 更新中的语法错误(Anaconda 提示)