Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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_Python 3.x_Nested Lists - Fatal编程技术网

Python 搜索嵌套列表,查找子元素并基于值删除

Python 搜索嵌套列表,查找子元素并基于值删除,python,python-3.x,nested-lists,Python,Python 3.x,Nested Lists,我有一个嵌套列表 test_list = [['AA', 'OFF'], ['BB', 'OFF'], ['BB', 'ON'], ['BB', 'ON'], ['CC', 'OFF'], ['DD', 'OFF'], ['EE', 'OFF']] 我想找到匹配的索引0子元素,例如 ['BB', 'OFF'], ['BB', 'ON'], ['BB', 'ON'] 并筛选出索引1中具有'OFF'的任何子项,只要找到了具有'ON'的匹配索引0,并且不保留重复项,否则只保留子元素 因此,对于上述

我有一个嵌套列表

test_list = [['AA', 'OFF'], ['BB', 'OFF'], ['BB', 'ON'], ['BB', 'ON'], ['CC', 'OFF'], ['DD', 'OFF'], ['EE', 'OFF']]
我想找到匹配的索引0子元素,例如

['BB', 'OFF'], ['BB', 'ON'], ['BB', 'ON']
并筛选出索引1中具有
'OFF'
的任何子项,只要找到了具有
'ON'
的匹配索引0,并且不保留重复项,否则只保留子元素

因此,对于上述示例,最终结果将是:

[['AA', 'OFF'], ['BB', 'ON'], ['CC', 'OFF'], ['DD', 'OFF'], ['EE', 'OFF']]
我尝试将上述内容转换为字典,但结果会根据列表的时间顺序而变化:

test_dict = dict(test_list)
test_dict
输出:

{'AA': 'OFF', 'BB': 'ON', 'CC': 'OFF', 'DD': 'OFF', 'EE': 'OFF'} 
这正是我想要的

要不是

test_list1 = [['AA', 'OFF'],['BB', 'ON'],['BB', 'OFF'],['CC', 'OFF'],['DD', 'OFF'],['EE', 'OFF']]
test_dict1 = dict(test_list1)

test_dict1
{'AA': 'OFF', 'BB': 'OFF', 'CC': 'OFF', 'DD': 'OFF', 'EE': 'OFF'}
它忽略了
['BB','ON']
,因为它的位置不符合我的要求

只要最终值是唯一的并且满足上述“开”/“关”标准,测试表的顺序实际上并不重要。
我想我正在寻找一种对嵌套列表进行分组和排序的方法,这样我就可以将其转换为字典并输出所需的结果?

您只需在子列表的第二个元素上对列表进行排序,这样
on
始终跟随
OFF
和代码:

test_list1 = [['AA', 'OFF'],['BB', 'ON'],['BB', 'OFF'],['CC', 'OFF'],['DD', 'OFF'],['EE', 'OFF']]
test_dict1 = dict(sorted(test_list1, key=lambda x: x[1]))
测试结果包括:

{'AA': 'OFF', 'BB': 'ON', 'CC': 'OFF', 'DD': 'OFF', 'EE': 'OFF'}

当您有两个OFF和一个ON时会发生什么情况,就像这样
['BB'、['BB'、['BB'、['BB'、['BB'、['BB'、'ON']、
,您希望
打开
还是
关闭