چرا در این کد لیست jangal درست مانند لیست jangalnext تغییر میکند؟
from colorama import *
jangal = [['g','f','f'],['f','f','f'],['f','f','f']]
def nextyear():
    global jangal
    jangalnext = jangal.copy()
    for row in jangal:
        for character in row:
            if character == 'f':
                jangalnext[jangal.index(row)][row.index(character)] = 's'
            if character == 'g':
                if jangal.index(row) == 0:
                    if row.index(character) == 0:
                        if row[row.index(character)+1] == 'f' or jangal[jangal.index(row)+1][row.index(character)] == 'f':
                            jangalnext[jangal.index(row)][row.index(character)] = 'f'
def printjangal(jangal):
    for row in jangal:
        for i in row:
            if i == 'f':
                print(Back.RED, 'f', end='')
            if i == 'g':
                print(Back.GREEN, 'g', end='')
            if i == 's':
                print(Back.WHITE, 's', end='')
        print(Style.RESET_ALL)
    print()
printjangal(jangal)
nextyear()
printjangal(jangal)
nextyear()
printjangal(jangal)سلام  دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
مشکل در این کد اینه  که در تابع nextyear() شما لیست jangal را کپی کردی و به آن لیست جدیدی به نام jangalnext اختصاص دادی ، اما تغییرات را در jangalnext اعمال کردی و نه در jangal. این به این معنیه که تغییراتی که در jangalnext اعمال میکنی ، تأثیری در jangal نداره.
برای حل این مشکل و اعمال تغییرات در jangal باید به جای استفاده از jangalnext, تغییرات را مستقیماً در jangal انجام بدی. به عبارت دیگر، از متغیر jangal بجای jangalnext در تابع nextyear() استفاده کنی.
اصلاح شدهی کد:
from colorama import *
jangal = [['g','f','f'],['f','f','f'],['f','f','f']]
def nextyear():
    global jangal
    for row in jangal:
        for idx, character in enumerate(row):
            if character == 'f':
                row[idx] = 's'
            if character == 'g':
                if jangal.index(row) == 0:
                    if idx == 0:
                        if row[idx + 1] == 'f' or jangal[jangal.index(row) + 1][idx] == 'f':
                            row[idx] = 'f'
def printjangal(jangal):
    for row in jangal:
        for i in row:
            if i == 'f':
                print(Back.RED, 'f', end='')
            if i == 'g':
                print(Back.GREEN, 'g', end='')
            if i == 's':
                print(Back.WHITE, 's', end='')
        print(Style.RESET_ALL)
    print()
printjangal(jangal)
nextyear()
printjangal(jangal)
nextyear()
printjangal(jangal)این تغییرات باعث میشود تغییرات در jangal اعمال بشن و شما تفاوتها را در هر دور از تابع nextyear() مشاهده میکنی .
امیدوارم پاسخم بهت کمک کرده باشه  ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟