簡體   English   中英

列表理解,語法無效

[英]List comprehension, invalid syntax

我想我可能在這里遺漏了一些明顯的東西,但是為什么編譯器為什么在列表理解中的“ for”之后引發“ SyntaxError:無效語法”?

num = str(2**1000)
print(num) 
sum = 0
print(sum[ int(num[i]) for i in range(len(num)) ])

有任何想法嗎?

sum = 0您要將內置函數名稱重新綁定到變量名稱,這使函數調用sum(some_sequence)無效。 不要使用任何內置類型/函數名稱作為自定義變量名稱。

此外, sum[ ... ]無效,請改用sum(...)因為它是一個函數。

您將sum分配為整數0

接下來,當您真的想做sum( )時,嘗試使用sum[...]將其作為列表進行訪問。

為此您需要擺脫sum = 0 ,因為Python不會使用內置方法sum() ,而是將其等效為0()並引發另一個錯誤。

您也不需要for i in range(num)因為您可以直接遍歷字符串。

將所有內容放在一起,您將擁有:

print(sum(int(i) for i in num)))

您也不需要內部列表。

或者,另一種更緊湊的方式:

print(sum(map(int, num)))

暫無
暫無

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

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