這個問題在這里已經有了答案: 在 python 中從用戶那里獲取多個輸入 17 個答案 將輸入中的多個數字放入一個串列 4 個答案 5 小時前關閉。
我試圖從接受用戶輸入的串列中獲取第二高的數字,但我一直得到這個 - ValueError: invalid literal for int() with base 10: 我嘗試了一個示例案例,其中 n = 5 并且我輸入了串列作為 [2,3,6,6,5] 我得到了同樣的錯誤
我該怎么做,代碼如下:
list1 = []
n = int(input())
for i in range(0,n 1):
ele = int(input()) //error coming in this line
list1.append(ele)
new_list = set(list1)
new_list.remove(max(new_list))
print(max(new_list))
這是回溯
Traceback (most recent call last):
File "/tmp/submission/20220221/18/09/hackerrank-1dcd86ec44b50895801520a4a2d0e542/code/Solution.py", line 4, in <module>
ele = int(input())
ValueError: invalid literal for int() with base 10: '2 3 6 6 5'
uj5u.com熱心網友回復:
通常,您可能希望始終列出一個串列,因此您可以執行類似的操作
- 獲取價值
- 取下大括號
- 通過將它們除以逗號來制作條目串列(如果沒有逗號,則方便地制作長度為 1 的串列!)
- 將它們轉換為整數
實際上,您可以使用包含清理的串列理解一次完成所有操作
[int(x) for x in input().strip("[]").split(",")]
>>> [int(x) for x in input().strip("[]").split(",")]
1
[1]
>>> [int(x) for x in input().strip("[]").split(",")]
[1,2,3]
[1, 2, 3]
其余部分從您的作業中進行,set以洗掉重復項、查找最大值等。
您也可以使用eval()將字串轉換為 Python 物件,但如果您接受來自未知來源的輸入(在最壞的情況下,是完全未知的來源,例如 Web 客戶端),這是非常危險的,因為它直接公開了所有的功能和權限呼叫者的程序
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430256.html
