如何处理嵌套的for循环?

2024-10-03 09:18:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图根据窗体中选定的选项将记录保存到数据库中。你知道吗

我试图使用的代码一直告诉我j不存在于前面的courselist中,j存在于前面的courselist中。你知道吗

if request.method == 'POST':
    for i in courselist and j in previouscourselist:
        requestsave(courselist and = i, previouscourselist= j)

使用以下方法。在courselist中,第一部分使用for i,记录循环正确。以前的Courselist将被写为一个列表[#####################,##########。你知道吗

   if request.method == 'POST':
        for i in courselist
            requestsave(courselist = i, previouscourselist= previouscourselist)

嵌套forloop的正确方法是什么,它将遍历courselist列表和previouscourselist?在有不同的课程列表和以前的课程列表的地方写个人记录?你知道吗

我想要实现的是拥有我的requestsave(courselist = i, and previouscourselist = j),所以它是这样写的:

CourseID   PreviousCourseID
2000       1001
2000       1015
2001       1001
2001       1015
2002       1001
2002       1015

当前使用

  if request.method == 'POST':
        for i in courselist
            requestsave(courselist = i, previouscourselist= previouscourselist)

它将上面的语句作为

CourseID    PreviousCourse
2000        [1001, 1015]
2001        [1001, 1015]
2002        [1001, 1015]

Tags: and方法in列表forifrequest记录
2条回答

首先,您的语法建议您存储索引而不是项本身。如果需要枚举,语法将为:

if request.method == "POST":
    for item_course, i in enumerate(courselist):
        for item_prev_course, j in enumerate(previouscourselist):
            requestsave(courselist=i, previouscourselist=j)

否则,如果您想存储该项,最好使用更好的变量名,这样您的代码更容易被读者解释。你知道吗

if request.method == "POST":
    for current_course in courselist:
        for prev_course in previouscourselist:
           requestsave(courselist=current_course, previouscourselist=prev_course)

如果要将列表加入到一个一对一关系的字典中,可以像这样使用zip()函数:

if request.method == "POST":
    course_dict = dict(zip(courselist, previouscourselist)

然后沿着字典迭代

   for course, prev_course in course_dict:
       requestsave(courselist=course, previouscourselist=prev_course)

你的意思是:

if request.method == 'POST':
    for i in courselist:
        for j in previouscourselist:
            requestsave(courselist=i, previouscourselist=j)

如果这解决了你的问题:有其他的方法来实现你的目标,但如果你还不知道如何做到这一点,那么他们可能不是一个好的选择。你知道吗

相关问题 更多 >