这可能有点明显,但我对python相对较新。
所以我尝试了一小段代码来打印一个列表,其中包含来自以下数据的每个子列表的最小字符串。
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=2
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))
型
2条答案
按热度按时间dsekswqp1#
就像我提到的,这是minlen的初始化值的问题
这里是更新的代码
字符串
这里是输出
型
你可以明显地看到你在列表中添加了一个列表。你可以根据你的需要修改它的行为。
它也接受第一个最小的字符串,如果有多个相同大小的最小字符串,它将忽略其他。您可以决定您想要做什么并相应地更新此。
在发布问题之前也尝试使用调试器,这对你来说将是很好的学习。
6yjfywim2#
你有句台词说
字符串
这样就永远不允许代码执行了。
型
这一行遍历嵌入列表,所有列表的长度都大于2,这意味着
len(movies)
永远不会小于minlen
,all_small_movies
保持为空。