擅长:python、mysql、java
<p>如果<code>served_vnfs</code>中的元素是简单的可序列化对象(例如整数),而不需要保留标识,那么序列化和反序列化列表列表(如<a href="https://stackoverflow.com/users/1977847/h%c3%a5ken-lid">@HåkenLid</a>的<a href="https://stackoverflow.com/a/66522078/1566221">answer</a>肯定会起作用。但似乎有很多不必要的工作,特别是如果列表可能更长的话</p>
<p>一种可能更简单的方法是复制从外部调用<code>itertools.product</code>返回的每个列表。由于这只是列表的浅表副本,因此无需使用<code>copy</code>模块:</p>
<pre class="lang-py prettyprint-override"><code>served_vnfs = [0,1,2]
mec_capacity_states = list(itertools.product(served_vnfs, repeat=2))
mecs_states = [list(map(list, p))
for p in itertools.product(mec_capacity_states,
repeat=2)]
</code></pre>
<p>测试(截断以避免滚动):</p>
<pre class="lang-py prettyprint-override"><code>>>> mecs_states[0][0][0] = 'a'
>>> mecs_states
[[['a', 0], [0, 0]], [[0, 0], [0, 1]], [[0, 0], [0, 2]], [[0, 0], [1, 0]], ...
</code></pre>