<p>与其使用<code>List1 + [valuestoadd[1:]]</code>,不如使用<code>newlist[0].append(valuestoadd[1:])</code>,这样它就永远不会创建新列表,只会附加到旧列表。<code>[0]</code>是必需的,因此它附加到第一个子列表而不是整个列表。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>newlist = List1 #you're doing this already - might as well initialize the new list with this code
for values in List1:
for valuestoadd in List2:
if values[0] == valuestoadd[0]:
newlist[0].append(valuestoadd[1:]) #adds the values on to the end of the first list
else:
print("Types don't match")
Output:
[['Type A =', 'Value 1', 'Value 2', 'Value 3', ['Value 9', 'Value 10', 'Value 11'], ['Value 12', 'Value 13']], ['Type B =', 'Value 4', 'Value 5']]
</code></pre>
<p>遗憾的是,这确实是将值作为列表输入的—如果要将它们拆分为单个值,则需要遍历正在添加的列表,并将单个值附加到<code>newlist[0]</code>。你知道吗</p>
<p>这可以通过另一个<code>for</code>循环来实现,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>if values[0] == valuestoadd[0]:
for subvalues in valuestoadd[1:]: #splits the list into subvalues
newlist[0].append(subvalues) #appends those subvalues
Output:
[['Type A =', 'Value 1', 'Value 2', 'Value 3', 'Value 9', 'Value 10', 'Value 11', 'Value 12', 'Value 13'], ['Type B =', 'Value 4', 'Value 5']]
</code></pre>