Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从元素重复的列表列表中删除元素?_Python_List_Unique - Fatal编程技术网

Python 如何从元素重复的列表列表中删除元素?

Python 如何从元素重复的列表列表中删除元素?,python,list,unique,Python,List,Unique,我有一份清单 my_list = [["a", "b", "c"], ["d", "f", "g"], ["h", "b", "i"]] 我想删除my_列表中元素[1]不唯一的所有元素。因此,执行此操作后的结果是 my_list = [["d", &qu

我有一份清单

my_list = [["a", "b", "c"],
           ["d", "f", "g"],
           ["h", "b", "i"]]
我想删除
my_列表中元素[1]不唯一的所有元素。因此,执行此操作后的结果是

my_list = [["d", "f", "g"]] 
或者一个新的列表也可以

new_list = [["d", "f", "g"]]
我目前的方法是:

from collections import Counter

y_list = []

for element in my_list:
    x, y, z = element
    y_list.append(y)

count_dict = dict(Counter(y_list))

unique_y_list = []

for y, count in count_dict.items():
    if count == 1:
        unique_y_list.append(y)
 

valid_elements = []

for element in my_list:
    x, y, z = element
    if y in unique_y_list:
        valid_elements.append(element)

这是可行的,但似乎效率不高。帮助我以一种更为通灵的方式达到我想要的效果?保留顺序并不重要。

我将创建索引1中元素的
计数器,然后使用它检查索引1中每个列表的元素是否唯一:

从集合导入计数器
c=计数器(我的_列表中x的x[1]
如果c[l[1]==1,则结果=[l代表我的_列表中的l]

您所说的“where元素[1]不是唯一的”是什么意思?我指的是该元素的索引[1]在我的\u列表中出现多次的任何元素。我的列表[0][1]=“b”;我的清单[2][1]=“b”;删除这些元素唯一无效的是如何重新构造有效元素。不要创建一个列表,
unique\u list
,检查
if y in unique\u list
:。
计数器是一个dictalready@juanpa.arrivillaga谢谢这就是OP正在做的事情。@Mureinik谢谢你,正是我想要的,更少的代码行