正如我之前提到的,问题在于minlen
初始化值的选择。
这里是更新后的代码:
import sys
my_movies = [['How I Met Your Mother', 'Friends', 'Silicon Valley'],['Family Guy', 'South Park', 'Rick and Morty'],['Breaking Bad', 'GOT', 'The Wire', 'The Last of Us']]
def min_length(my_movies):
all_small_movies=[]
minlen=sys.maxsize
for movies in my_movies:
if len(movies)<minlen:
minlen=len(movies)
all_small_movies=[movies]
return all_small_movies
small_new_list=list(map(min_length,my_movies))
print(small_new_list)
下面是输出结果:
[['Friends'], ['Family Guy'], ['GOT']]
你可以明显看到这里是在将一个列表追加到另一个列表中。你可以根据自己的需求来调整其行为。
同时要注意,这段代码实际上是选取了每个子列表中最短的第一个字符串所在的子列表,如果有多个相同长度的最短字符串,其他会被忽略。你可以根据需要决定如何处理这种情况。
另外,在提问之前尽量尝试使用调试器进行调试,这对你会有很大的帮助。