2013-07-15 109 views
0

我有几个字典(Class1 , Class2),并且字典中的一个元素存储了一个列表(Score),我想将列表中的元素放入另一个列表中,但不将列表本身放到另一个列表中。如何直接将列表元素添加到另一个列表中?

我试试下面的代码

All = [] 
Class1 = {"name":"A","score":[60,70,80]} 
Class2 = {"naem":"B","score":[70,80,90]} 
All.append(Class1['score']) 
All.append(Class2['score']) 
print(All) 

但结果是

[[60, 70, 80], [70, 80, 90]] 

,但我要的是

[60, 70, 80, 70, 80, 90] 

我试试下面这个解决办法,但我想知道有没有更好的解决方案?

All = [] 
Class1 = {"name":"A","score":[60,70,80]} 
Class2 = {"naem":"B","score":[70,80,90]} 

Scores1 = Class1['score'] 
Scores2 = Class2['score'] 

Scores = Scores1 + Scores2 
for score in Scores: 
    All.append(score) 

print(All) 

感谢

+2

究竟做* *更好的在这方面对你意味着什么? – sloth

+0

更好的解决方案意味着更短的解决方案.... – user2131116

+0

有趣的事情的数量很好隐藏在你的例子中的文档(如'extend') – njzk2

回答

6

您可以使用extend

extend(...) 

L.extend(iterable) -- extend list by appending elements from the iterable 
All = [] 
Class1 = {"name":"A","score":[60,70,80]} 
Class2 = {"naem":"B","score":[70,80,90]} 
All.extend(Class1['score']) 
All.extend(Class2['score']) 
print(All) 
3

All.extend(...)将你想要做什么......

3
All = Class1["score"] + Class2["score"] 

以后要增加更多的元素:

ALL += Classx["score"] 
3

当你调用All.append(Class1['score']),包含在你的dictionnary名单被视为一个单一的元素,并添加到您的All的整个列表。

您必须循环浏览列表中的每个项目,或使用list.extend方法,该方法会将您的列表与另一个迭代器合并,即将每个项目从该其他迭代器附加到起始列表。

3

如果All可能已经包含元素:

All.extend(Class1["score"] + Class2["score"]) 
相关问题