我正在嘗試使用兩種方法將串列轉換為單個整數:
for回圈作業正常并給了我整數
>>> a_list = "123456789"
>>> a_list = list(a_list)
>>> b_int = ""
>>> for num in a_list:
... b_int = num
...
>>> print(int(b_int))
123456789
但是join()回傳一個 ValueError
>>> a_list = "123456789"
>>> c_int = ""
>>> c_int.join(a_list)
>>> print(int(c_int))
Traceback (most recent call last):
File "xxx.py", line 4, in <module>
print(int(c_int))
^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''
為什么會join()回傳 ValueError?許多不同的帖子都建議將其作為更好的解決方案。
uj5u.com熱心網友回復:
the 的起源ValueError是你正在呼叫int一個空字串而不是join一個。字串是不可變的,所以你總是需要重新分配結果。
a_list = "123456789"
c_int = ""
c_int = c_int.join(a_list) # <-
print(int(c_int))
順便說int(a_list)一下。
uj5u.com熱心網友回復:
由于字串是一個字串,它不能“連接”到一個數字,但如果字串包含數字,它可以轉換為數字然后減少
list("123456789")
Out[6]: ['1', '2', '3', '4', '5', '6', '7', '8', '9']
[int(x) for x in list("123456789")]
Out[7]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
sum([int(x) for x in list("123456789")])
Out[8]: 45
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534873.html
