带有列表的python嵌套循环

2024-05-16 05:51:43 发布

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

好的,所以我正在练习几个问题,不知道如何开始这个问题。我不太了解如何进行嵌套循环,所以我们得到了一个创建笑脸的列表,然后是下面的说明。在

smiley = [[" ","#"," ","#"," "],
      [" ","#"," ","#"," "],
      [" ","#"," ","#"," "],
      [" "," "," "," "," "],
      ["#"," "," "," ","#"],
      [" ","#"," ","#"," "],
      [" ","#","#","#"," "],
      [" "," "," "," "," "]]

基于上面定义的smiley创建一个新的局部变量。更严格地说,这个新变量的定义需要显式地使用变量smiley。 使用嵌套for循环更改新创建的局部变量中存储的字符。不要在任何列表中添加或删除任何元素。仅更换/更换。但是,您可以更改任何字符并将其替换为任何其他单个字符。 返回本地列表。在

那么,我如何对这些列表执行嵌套循环,并在不更改其他所有内容的情况下更改它们的项??在

我只有这个,但我不认为这是我应该如何开始,请帮帮我

^{pr2}$

Tags: 元素内容列表for定义情况字符嵌套循环
2条回答
for list_index, lst in enumerate(face):
    for item_index, item in enumerate(lst):
        if item == '#':
            face[list_index][item_index] = ' '
        else:
            face[list_index][item_index] = '#'  

上面的代码会翻转字符。item是当前列表中的元素。
使用索引更改元素。在

尝试以下操作在所需的行号和字符号处的"#"和{}之间切换:

def moodSwing(smiley, coords):
    face = list(smiley)
    for row, character in coords:
        for r in range(len(face)):
            for c in range(r):
                if r == row+1 and c == character+1:
                    if face[r][c] == " ":
                        face[r][c] = "#"
                    else:
                        face[r][c] = " "
    return face

然后执行以下操作:

^{pr2}$

相关问题 更多 >