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)

谢谢

4

5 回答 5

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)
于 2013-07-15T12:58:11.817 回答
3

All.extend(...) 会做你想做的事......

于 2013-07-15T12:59:56.520 回答
3
All = Class1["score"] + Class2["score"]

稍后添加更多元素:

ALL += Classx["score"]
于 2013-07-15T13:02:55.517 回答
3

当您调用All.append(Class1['score'])时,字典中包含的列表将被视为单个元素并All作为一个整体添加到您的列表中。

您要么必须像以前那样遍历列表中的每个项目,要么使用list.extend将列表与另一个迭代器合并的方法,即将另一个迭代器中的每个项目附加到您的起始列表中。

于 2013-07-15T13:06:39.920 回答
3

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

All.extend(Class1["score"] + Class2["score"])
于 2013-07-15T13:09:04.223 回答