如何将Python循环中临时变量k的所有取值整理为列表?
解决方法
你可以通过以下几种方式将所有分数整理成一个列表:
方法一:嵌套循环构建列表
直接遍历字典中的每个分数列表,将每个分数添加到新列表中:
marks = {"Farah":[20,40,50,33],"Ali":[45,38,24,50],"Sarah":[50,43,44,39]} all_marks = [] for scores in marks.values(): for score in scores: all_marks.append(score) print(all_marks) # 输出: [20, 40, 50, 33, 45, 38, 24, 50, 50, 43, 44, 39]
方法二:列表推导式(简洁写法)
用Python的列表推导式一行完成,逻辑和嵌套循环一致:
marks = {"Farah":[20,40,50,33],"Ali":[45,38,24,50],"Sarah":[50,43,44,39]} all_marks = [score for scores in marks.values() for score in scores] print(all_marks)
方法三:使用itertools.chain(高效处理大量数据)
如果需要处理大量数据,itertools.chain可以避免创建中间列表,提升效率:
import itertools marks = {"Farah":[20,40,50,33],"Ali":[45,38,24,50],"Sarah":[50,43,44,39]} all_marks = list(itertools.chain.from_iterable(marks.values())) print(all_marks)
注:原代码中的
for key,value in marks.items()没有实际作用,因为内层循环直接遍历了marks.values(),可以去掉这层循环以优化代码。
内容的提问来源于stack exchange,提问作者Sher Meen
相关产品推荐
相关产品推荐

