我有一个错误在这个代码,我不明白为什么它是错误的。你知道吗
LL = [2,3,4,5,6,2,5,4]
print(x[-4:])
def remove_last_elements(the_list):
while len(the_list) > 5 in the_list:
the_list.remove(the_list[-4:])
print(the_list)
remove_last_elements(LL)
输出应为LL=[2,3,4,5]。我需要len()>;5,因为我有几个列表(嵌套)包含不同数量的元素。你知道吗
下面是我收到的错误信息:
Traceback (most recent call last):
File "C:/APPL/DPI/PDF_reader/test_general.py", line 68, in <module>
remove_last_elements(LL)
File "C:/APPL/DPI/PDF_reader/test_general.py", line 66, in remove_last_elements
the_list.remove(the_list[-4:])
ValueError: list.remove(x): x not in list
您不必检查任何条件。试着把前五个元素:
如果列表中的元素少于五个,则切片操作符将被忽略。你知道吗
是的,你应该用一个简单的比较。如果列表中有5个以上的元素,请删除最后5个。把它看作是保留所有的但是最后5个。你知道吗
如果要减少列表,直到元素不超过5个,则将
if
替换为while
。你知道吗按操作说明更新
您的任务是删除由5个元素组成的组,直到不超过5个元素为止。用模算符就足够简单了。你知道吗
您的原始代码有几个结构问题。如果您担心列表中有多少元素,为什么要检查特定的元素?
5 in the_list
正在查找值5,而不是5个元素。你知道吗其次,您的列表由整数组成,但您正试图删除一个自引用子列表:
正如您已经知道的,这个片段是由五个元素组成的特定列表。在
the_list
中没有子列表,因此无法将其作为元素。如果要从原始列表中明确删除每个元素,则必须依次遍历它们。简单地获取你想要保留的列表片段要容易得多。你知道吗相关问题 更多 >
编程相关推荐