回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>下面的函数接收以下列表:</p>
<pre><code>L1= [[12345,75,'English'],
[23452,83,'Physics'],
[23560,81,'Statistics'],
[23415,61,'Computer'],
[23459,90,'Physics'],
[12345,75,'Computer'],
[23452,100,'Statistics']]
L2= [['a','English'],
['b','Physics'],
['c','Computer'],
['d','Statistics'],
['e','Philosophy']]
</code></pre>
<p>功能:</p>
<pre><code> def TeachMarks (L1, L2):
teacherd=dict(L2) #key- teacher name, value- subject
Dc=dict.fromkeys(teacherd.values(),[]) #key-subj, value- empty list
for i in L1:
subj=i[2]
Dc[subj].append(i[0])
print '\n'
print Dc
</code></pre>
<p>L1中的每个内部列表的主题都位于[2]位置。
字典的每个键(Dc)都是一个主题,其值是一个空列表。
函数应该获取内部列表中的第一个元素,并将其添加到列表中,该列表是字典中相关主题的值。你知道吗</p>
<p>但当我运行它时,它实际上会将每个内部列表(L1)的第一个元素添加到每个值中。这是输出:</p>
<pre><code>{'Statistics': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Philosophy': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Computer': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'Physics': [12345, 23452, 23560, 23415, 23459, 12345, 23452], 'English': [12345, 23452, 23560, 23415, 23459, 12345, 23452]}
</code></pre>
<p>我做错什么了?你知道吗</p>
<p>谢谢</p>