簡體   English   中英

在python中同時讀取兩個列表中的輸入

[英]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初學者的常見錯誤。

您試圖將輸入的值分配給列表distltr特定單元格,但是由於它們是空列表,所以沒有可用的單元格。 索引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.

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