擅长:python、mysql、java
<p>你的代码几乎是正确的。必须指定给要更改的列表元素,而不是变量。如果<code>old_hosts</code>包含不在<code>workers</code>中的工作进程id,则解决方案将中断。我删除了冗余生成器表达式</p>
<pre><code>workers = [['w1', 1],['w2',2]]
old_hosts = [['w1',-1],['w1',-11]]
for old_host in old_hosts:
old_host[1] = [worker[1] for worker in workers if worker[0]==old_host[0]][0]
print('old_host: ' + str(old_host))
print('workers: ' + str(workers))
print('old_hosts: ' + str(old_hosts))
</code></pre>
<p>输出</p>
<pre><code>old_host: ['w1', 1]
old_host: ['w1', 1]
workers: [['w1', 1], ['w2', 2]]
old_hosts: [['w1', 1], ['w1', 1]]
</code></pre>