[英]Reading input in two lists simultaneously in python
我正在解決有關hackerrank的問題,並且在讀取輸入內容時遇到了問題。
輸入格式為:
第一行:一個數字n
,它表示否。 行我必須閱讀。
n行:兩個空格分隔的值,例如:
1 5
10 3
3 4
我想讀取兩個列表中用空格分隔的值。 因此,列表“ a”應為[1,10,3],列表“ b”應為[5,3,4]。
這是我的代碼:
dist = []
ltr = []
n = input()
for i in range(n):
ltr[i], dist[i] = map(int, raw_input().split(' '))
它給了我以下錯誤:
ltr [i],dist [i] = map(int,raw_input()。split(''))
IndexError:列表分配索引超出范圍。
這是Python初學者的常見錯誤。
您試圖將輸入的值分配給列表dist
和ltr
特定單元格,但是由於它們是空列表,所以沒有可用的單元格。 索引i
超出范圍,因為該索引根本沒有范圍。
因此,與其分配到列表中,不如將它們附加到列表上,例如
dist = []
ltr = []
n = input()
for i in range(n):
a, b = map(int, raw_input().split(' '))
ltr.append(a)
dist.append(b)
請注意,我還通過插入空格改進了代碼的格式。 在您開始學習時,遵循良好的作風對您有好處,因此您以后需要克服的困難少。
這可能會在某種程度上幫助您。 這是解決此問題的更簡單方法,因為您知道“ 簡單勝於復雜。 ”:
dist=[]
ltr=[]
n=int(raw_input())
for i in range(n):
dist.append(int(raw_input()))
ltr.append(int(raw_input()))
print(dist)
print(ltr)
輸出:
[1, 10, 3]
[5, 3, 4]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.