回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>下面是三维点编组的元组(九个点)</p>
<pre><code>f = [[10, 20, 0],
[40, 20, 30],
[20, 0, 30],
[10, 10, 0],
[30, 10, 10],
[20, 0, 30],
[20, 10, 20],
[10, 10, 0],
[20, 0, 30]]
</code></pre>
<p>每个点对应一个特定的数字(索引),表示点的类型(假设)</p>
<pre><code>ic=[1,2,3,2,1,3,2,3,1]
</code></pre>
<p>因此,前面的元组可以表示为</p>
<pre><code>f = [[10, 20, 0, 1],
[40, 20, 30, 2],
[20, 0, 30, 3],
[10, 10, 0, 2],
[30, 10, 10, 1],
[20, 0, 30, 3],
[20, 10, 20, 2],
[10, 10, 0, 3],
[20, 0, 30, 1]]
</code></pre>
<p>这是我的密码:</p>
<pre><code>uniq = []
dup = []
count = 0
for i, j, k in f:
if not [f.index([i,j,k]),i,j,k] in uniq:
uniq.append([count,i,j,k])
else:
dup.append([count,i,j,k,"duplicate"])
count += 1
uniq.extend(dup)
print(uniq)
for i,j in enumerate(uniq):
j.append(ic[j[0]])
print(unique)
</code></pre>
<p>我想得到的结果如下:</p>
<p>独特部分:</p>
<pre><code>index point equivalent points index for same point
0 [10, 20, 0, 1] 1 [1]
1 [40, 20, 30, 2] 1 [2]
2 [20, 0, 30, 3] 3 [3,3,1]
3 [10, 10, 0, 2] 2 [2,3]
4 [30, 10, 10, 1] 1 [1]
6 [20, 10, 20, 2] 1 [2]
</code></pre>
<p>重复部分:</p>
<pre><code>index point Duplicate or not
5 [20, 0, 30, 3] duplicate
7 [10, 10, 0, 3] duplicate
8 [20, 0, 30, 1] duplicate
</code></pre>
<p>我的代码旨在实现提取重复点并在列表中指示其索引的功能。此外,我还需要实现一个函数来显示我的唯一部分中有多少个等价点,以及这些等价点的索引。你知道吗</p>
<p>我怎样才能修改它?你知道吗</p>