事實上,你的代碼不是嵌套的列表理解,因爲你使用list
construtor而不是單純的列表理解。 這條線作爲與您的代碼:
entr = [[int(x) for x in input().split()] for i in range(int(input()))]
要了解這一行,你必須記住在Python列表理解的基本結構,它由兩個組件obj
和condition
的用方括號 :
lst = [obj condition]
它可以被轉換爲一個循環是這樣的:
lst = []
condition:
lst.append(obj)
那麼,回到這個問題。 你現在需要做的是將嵌套的列表理解分解成循環,通常你從後面的條件開始,從外層空間到內層空間。你有:
entr = []
for i in range(int(input())):
entr.append([int(x) for x in input().split()])) # the obj is a list in this case.
而現在,你可以打破列表理解在第3行
entr = []
for i in range(int(input())):
entry = []
for x in input().split():
entry.append(int(x))
entr.append(entry)
所以,現在的東西原線,可以很容易地理解。
- 該程序構造一個名爲
entr
的條目列表;
- 該程序要求用戶輸入並將輸入
string
轉換爲int
,這是要輸入的entrys的數量(假設它是num
);
- 程序要求用戶輸入
num
次,每次輸入與空格分開的東西。
- 該程序將每個字符串拆分成一個列表(在上面的代碼中命名爲
entry
),用str.split()
方法輸入(參數sep
默認爲空格)。並在每個循環中列出append
各entry
。
- 對於
entry
列表中的每個元素,它將轉換爲int
。
我的英語可能會很差,隨意提高我的答案:)
非常感謝你的幫助。我現在很清楚 – MPadilla
很高興你得到它。 – Feishi