4 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
digit循環(huán)中的變量for是列表中值的副本,而不是對(duì)其的引用。修改該值不會(huì)修改列表。(另外,正如其他人所指出的,您需要=操作員修改一個(gè)值,而不是==?。?/p>
您可以通過(guò)以下兩種不同的方式完成您的目標(biāo):
使用枚舉lst在循環(huán)中進(jìn)行修改:
def square_digits(num):
lst = [int(x) for x in str(num)]
for i, digit in enumerate(lst):
lst[i] = digit **2
return lst
或使用理解來(lái)構(gòu)建和返回方塊列表:
def square_digits(num):
return [int(x)**2 for x in str(num)]

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
2個(gè)原因:
您正在使用
==
which 用于檢查相等性而不是=
which 用于分配值。即使您正在使用
=
,也不會(huì)更新該列表。
下面的代碼應(yīng)該可以更好地工作

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
def square_digits(num):
lst = [int(x) for x in str(num)]
newList = [digit ** 2 for digit in lst]
return newList

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
因?yàn)槟阋祷匾粋€(gè)lst.
def square(num):
lst = [int(x)**2 for x in num]
return lst
添加回答
舉報(bào)