試圖運行該代碼:IndexError:列表索引超出範圍的Python 3.4
sorted_by_name = sorted(sort_array,key=lambda x:x[0]))
我得到:
IndexError: list index out of range
我該如何解決這個問題?
由於在sort_array
試圖運行該代碼:IndexError:列表索引超出範圍的Python 3.4
sorted_by_name = sorted(sort_array,key=lambda x:x[0]))
我得到:
IndexError: list index out of range
我該如何解決這個問題?
由於在sort_array
好一個元素應該是空或空字符串。見以下實施例
實施例#1:
sort_array = ['abc', 'acd', 'abcd', '']
sort_array
['abc', 'acd', 'abcd', '']
sorted(sort_array, key=lambda student: student[0])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
IndexError: string index out of range
例如#2,我將sort_array採取以列表的列表,它匹配更多到您的sorted_by_name
>>> student_tuples = [
... ['john', 'A', 15],
... []
... ]
>>> sorted_by_name = sorted(student_tuples,key=lambda x:x[0])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
IndexError: list index out of range
因此,我示例請求你請檢查你的輸入sort_array
一次,如果它有任何空列表
這意味着至少有一件事情在你的清單是空的,所以doe沒有第一個元素。解決方法是簡單的,不通過的關鍵:
sorted_by_name = sorted(sort_array)
的sorted
默認實現已經嘗試的第一個項目,那麼第二項,第三項,等等。當你傳遞一個鍵,它首先嚐試你的鑰匙,第一件。如果它發現兩個是相同的,它會自行檢查。它檢查第一個項目(再次),第二個項目,第三個項目等。換句話說,兩者都是相同的,除了提供一個鍵可能意味着第一個項目被檢查兩次,當然默認實現不會' t空的列表上出現錯誤。