簡體   English   中英

帶有列表的python嵌套循環

[英]python nested loops with lists

好的,所以我正在解決幾個問題,並且不知道如何啟動這個問題。 我不太清楚如何執行嵌套循環,因此我們給出了一個創建笑臉的列表,然后提供了此說明。

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

根據上面定義的笑臉創建一個新的局部變量。 更嚴格地說,您對此新變量的定義需要顯式使用變量笑臉。 使用嵌套的for循環可更改存儲在新創建的局部變量中的字符。 不要從任何列表中添加或刪除任何元素。 僅更改/替換。 但是,您可以使用任何其他單個字符更改和替換任何字符。 返回此本地列表列表。

所以我該如何為這些列表嵌套循環並更改其項目而不更改其他所有項目?

我只有這個,但我不認為這應該是我的起點,請幫助我

def moodSwing():
face = smiley.copy()
for each in face[:1]:
    for each in face[1:2]:

嘗試以下操作在所需行號和字符號的"#"" "之間切換:

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

然后執行以下操作:

>>> frown = moodSwing(smiley, [(4, 0), (4, 4), (5, 1), (5, 2), (5, 3), (6, 1), (6, 2), (6, 3)])
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是當前列表中的元素。
使用索引來更改元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM