OJ中python接收一行多個輸入值的方式


oj,在線判題系統。經常需要第一排給出稍后的輸入測試次數,之后在每行輸入多個值給程序。

首先接收指示的輸入測試次數沒什么問題,主要記錄用一行形如下式代碼獲取一行的多個輸入值的方法:

 

  gotinput=list(map(int,input().split()))

就是它了,從此再也不用為接收輸入煩惱,安心考慮算法吧。這里稍微記錄一下這行代碼的原理。

核心:map(function, iterable, ...)函數

首先需要說明,該函數在python2.x和python3.x中返回類型不同,但執行的操作相同,即,將iterable指示的某個序列,挨個進行function的操作。

這里map取“映射”的意思,應該就能記住這個用法了,平時自己寫代碼也會更方便。

而剛才提到的該函數返回值的不同之處是,python2.x中map函數返回一個列表,而python3.x中則返回一個迭代器。

那個式子也很容易理解了,將input()得到的字符串分割(split()默認以一切空字符為分隔符,包括空格、制表符\t和換行符\n;同時,也默認是全部分割),之后通過map將字符映射為數字,由於我使用python3,所以最后用一個list()將輸入結果轉換為儲存int的列表。

原理更重要,有時候就是需要輸入為字符的話不用map也可以。又或者使用python2.x的話就不用轉換為list了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM