我目前正在研究一个模块,它将计算矢量与平面法线之间的角度。无论如何,为了满足计算平面法线的条件,我需要R3中的3点。列表(设置)为嵌套列表?
我已经找到了一种方法将列表元素转换为字符串,但是这会使代码下游复杂化。以下代码块旨在满足此条件。列表t2包含字符串并且顺畅运行,但是我希望使用嵌套列表(t1)。因此,在t1中
t1,t2=[],[] #B3
for i in range(0, len(s)):
t1.append([s[i][0][0],s[i][2][4]])
t2.append(s[i][0][0]+s[i][2][4])
u,j,k=list(set(t2)),[],[]
for item in u:
j.append(t2.count(item))
if len(u) == len(j):
for i in range(0, len(u)):
if j[i] >= 3:
k.append([u[i]])
#For additional clarity:
List t1 looks as follows:
[['[7,', '158,'],
['[7,', '158,'],
['[51,', '158,'],
['[51,', '158,'],
['[51,', '158,'],
['[51,', '161,'],
['[51,', '161,'],
['[51,', '161,'],
['[298,', '114,'],
['[808,', '138,'],
['[808,', '138,']...
如果存在含有等价元件3名或多个列表(例如[ '[51,', '158,'])我想追加这些。问题是set()不适用于嵌套列表。
有没有办法解决这个问题? 干杯
你可以转换为嵌套'tuple'的'set'吗? 'set(元组(lst)for lst in l2)' – mgilson
你想使用元组而不是列表。元组基本上与列表相同,除了它们是不可变的。正因为如此,它们可以用作字典(和集合)键。只需使用圆括号代替方括号来创建元组。要将现有列表转换为元组,请使用'tuple(my_list)'。 –