试图运行该代码: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空的列表上出现错误。