我想创建一个读取列表理解、返回奇数行并反转偶数行的函数。查看我当前的代码块

问题描述 投票:0回答:1

理解字段:认识到字段是列表的嵌套列表,其中可以使用行和列索引访问每个元素。

规划路径:在偶数行(0、2、4、...)上,拖拉机应从左向右移动。在奇数行(1、3、5、...)上,它应该从右向左移动。

实现逻辑:使用循环和条件根据上述计划构建路径。

复用

reverse_list
功能:通过复用代码改变拖拉机的方向。

返回动作:您的函数最终应返回一个元组列表,每个元组代表每个动作的坐标(行、列)。

此功能是否:

def reverse_list(input_list):
    list_reversed = input_list[::-1]
    return list_reversed

def student_function(field):
    plough_movements = []

    for row_index, row in enumerate(field):
        if row_index % 2 == 0:
            plough_movements.extend([(col, row_index) for col in range(len(row))])
        else:
            reverse_row = reverse_list(row)
            plough_movements.extend([(col, row_index) for col in range(len(reverse_row))])

    return plough_movements

给出这个结果:

[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 4), (1, 3), (1, 2), (1, 1), (1, 0), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 4), (3 , 3), (3, 2), (3, 1), (3, 0), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4 ), (5, 4), (5, 3), (5, 2), (5, 1), (5, 0), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (7, 4), (7, 3), (7, 2), (7, 1), (7, 0), (8, 0), (8 , 1), (8, 2), (8, 3), (8, 4), (9, 4), (9, 3), (9, 2), (9, 1), (9, 0 )]

python function pygame list-comprehension
1个回答
0
投票

如果你尝试学习Python,你通常不应该将你的作业外包给stackoverflow,但如果我正确理解这个问题,这应该可行:

def student_function(field):
    plough_movements = []

    for i, row in enumerate(field): 
       if i % 2 == 0:
           plough_movements.extend([(col, i) for col in row])
       else:
           plough_movements.extend([(col, i) for col in row.reverse()])
return plough_movements

另请提供一些有关该字段确切含义的背景信息。

© www.soinside.com 2019 - 2024. All rights reserved.