我试图在嵌套的对象列表中找到“最高级别”的唯一元素,包括数据帧和列表。这意味着在第一个嵌套级别删除匹配项,而不是递归删除。实际上,这相当于一个Set
函数,其中列表中的元素可以是任何东西,可以是散列的,也可以是非散列的
例如,我有以下列表:
oreka = [
[['Name', 'INSERT_3'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
,
[['Name', 'INSERT_3'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
],
[['Name', 'INSERT_3'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
,
[['Name', 'INSERT_4'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
],
.....]
我想找到一个独特的“元素”列表,在本例中是一个嵌套列表,对于每个元素中的嵌套数量,或者它们是数字还是字符串等,我没有标准布局。重复不遵循逻辑,我的上述输出是:
Unique =
[
[['Name', 'INSERT_3'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
,
[['Name', 'INSERT_4'],
['Product', ['Aegon', ' ', 'Level Life Cover']],
],
.....]
我尝试了this post中提出的解决方案,该解决方案建议删除列表中的重复数据帧,但这取决于顺序性质或重复的每个其他元素,并且不起作用:
Unique = [all_df_list[x] for x, _ in enumerate(all_df_list) if all_df_list[x].equals(all_df_list[x-1]) is False]
作为最后一次尝试,我尝试将列表与自身的副本进行比较,创建一个矩阵,其中索引列表中重复的元素被引用为2,唯一的元素被引用为1,这会陷入循环:
dali = []
eureka = oreka.copy()
for i in range(0,len(eureka)):
salvator = []
for j in range(0,len(oreka)):
picasso=[]
monet = 1
if eureka[i]!=oreka[j]:
picasso.append(monet)
if eureka[i]==oreka[j]:
picasso.append(monet+1)
salvator.append(picasso)
dali.append(salvator)
如果嵌套列表中的项目是不规则的,是否有任何常规(非对象特定的)方法来检查嵌套列表?类似于Set
的东西,它不要求第一个嵌套中的元素不是列表或其他对象
目前没有回答
相关问题 更多 >
编程相关推荐