Python 3.x 如何从字典列表中删除或消除所有包含一个列表值的字典?

Python 3.x 如何从字典列表中删除或消除所有包含一个列表值的字典?,python-3.x,list,dictionary,Python 3.x,List,Dictionary,我有一个字典列表,我希望从列表中的每个字典中删除或删除所有包含一个列表值的字典。这是一个字典示例,它有一个列表值({'10.48.18.47':['07:46:06']})。这是字典列表的一个示例: [{'10.0.0.155': ['19:48:46', '20:15:46', '19:49:37', '20:15:08', '19:48:46', '19:47:30', '19:49:13', '20:15:50', '19:45:34', '19:45:33', '19:49:13', '

我有一个字典列表,我希望从列表中的每个字典中删除或删除所有包含一个列表值的字典。这是一个字典示例,它有一个列表值
({'10.48.18.47':['07:46:06']})
。这是字典列表的一个示例:

[{'10.0.0.155': ['19:48:46', '20:15:46', '19:49:37', '20:15:08', '19:48:46', '19:47:30', '19:49:13', '20:15:50', '19:45:34', '19:45:33', '19:49:13', '19:49:16', '19:49:36', '19:50:02', '19:54:25', '20:15:06', '19:45:25', '20:15:49', '19:55:10', '19:47:33'], '192.168.1.240': ['16:23:40', '16:23:39', '16:23:20'], '192.168.0.242': ['20:14:07', '20:14:09']}, {}, {'10.48.18.47': ['07:46:06']}, {}, {'0.0.0.0': ['21:19:02', '21:45:21', '21:22:04', '21:18:53', '21:38:47', '21:22:52', '21:38:49', '21:22:05', '21:18:55', '21:22:03', '21:18:45', '21:19:01', '21:22:53', '21:18:25', '21:38:51', '21:22:09', '21:18:15'], '192.168.1.193': ['20:09:24', '20:33:57', '20:09:13', '20:09:39', '20:09:29', '20:03:06', '20:09:33', '20:33:58', '20:09:19', '20:09:38', '20:09:37', '20:18:28', '20:09:17', '20:09:22', '20:33:59', '20:29:53', '20:07:47', '20:09:36', '20:18:29', '20:03:04', '20:34:00'], '172.16.12.31': ['18:57:32'], '192.168.1.120': ['20:43:06', '20:43:05', '20:43:04'], '192.168.1.186': ['20:18:36']}]
这是我的代码:

My_list = [mhist, mhist1,mhist2,mhist3,mhist4]

print (My_list)

while {} in My_list:

    My_list.remove({})

for dect in My_list:

    count = sum(len(v) for v in dect.values())

    print (count)
您可以尝试:

>>> data = [{'10.0.0.155': ['19:48:46', '20:15:46', '19:49:37', '20:15:08', '19:48:46', '19:47:30', '19:49:13', '20:15:50', '19:45:34', '19:45:33', '19:49:13', '19:49:16', '19:49:36', '19:50:02', '19:54:25', '20:15:06', '19:45:25', '20:15:49', '19:55:10', '19:47:33'], '192.168.1.240': ['16:23:40', '16:23:39', '16:23:20'], '192.168.0.242': ['20:14:07', '20:14:09']}, {}, {'10.48.18.47': ['07:46:06']}, {}, {'0.0.0.0': ['21:19:02', '21:45:21', '21:22:04', '21:18:53', '21:38:47', '21:22:52', '21:38:49', '21:22:05', '21:18:55', '21:22:03', '21:18:45', '21:19:01', '21:22:53', '21:18:25', '21:38:51', '21:22:09', '21:18:15'], '192.168.1.193': ['20:09:24', '20:33:57', '20:09:13', '20:09:39', '20:09:29', '20:03:06', '20:09:33', '20:33:58', '20:09:19', '20:09:38', '20:09:37', '20:18:28', '20:09:17', '20:09:22', '20:33:59', '20:29:53', '20:07:47', '20:09:36', '20:18:29', '20:03:04', '20:34:00'], '172.16.12.31': ['18:57:32'], '192.168.1.120': ['20:43:06', '20:43:05', '20:43:04'], '192.168.1.186': ['20:18:36']}]
>>> final_data = []
>>> for d in data:
...   if len(d.values()) > 1:
...     final_data.append(d)
...
>>> final_data
[{'10.0.0.155': ['19:48:46', '20:15:46', '19:49:37', '20:15:08', '19:48:46', '19:47:30', '19:49:13', '20:15:50', '19:45:34', '19:45:33', '19:49:13', '19:49:16', '19:49:36', '19:50:02', '19:54:25', '20:15:06', '19:45:25', '20:15:49', '19:55:10', '19:47:33'], '192.168.1.240': ['16:23:40', '16:23:39', '16:23:20'], '192.168.0.242': ['20:14:07', '20:14:09']}, {'0.0.0.0': ['21:19:02', '21:45:21', '21:22:04', '21:18:53', '21:38:47', '21:22:52', '21:38:49', '21:22:05', '21:18:55', '21:22:03', '21:18:45', '21:19:01', '21:22:53', '21:18:25', '21:38:51', '21:22:09', '21:18:15'], '192.168.1.193': ['20:09:24', '20:33:57', '20:09:13', '20:09:39', '20:09:29', '20:03:06', '20:09:33', '20:33:58', '20:09:19', '20:09:38', '20:09:37', '20:18:28', '20:09:17', '20:09:22', '20:33:59', '20:29:53', '20:07:47', '20:09:36', '20:18:29', '20:03:04', '20:34:00'], '172.16.12.31': ['18:57:32'], '192.168.1.120': ['20:43:06', '20:43:05', '20:43:04'], '192.168.1.186': ['20:18:36']}]
你可以试试这个-

d = [{'10.0.0.155': ['19:48:46', '20:15:46', '19:49:37', '20:15:08', '19:48:46', '19:47:30', '19:49:13', '20:15:50', '19:45:34', '19:45:33', '19:49:13', '19:49:16', '19:49:36', '19:50:02', '19:54:25', '20:15:06', '19:45:25', '20:15:49', '19:55:10', '19:47:33'], '192.168.1.240': ['16:23:40', '16:23:39', '16:23:20'], '192.168.0.242': ['20:14:07', '20:14:09']}, {}, {'10.48.18.47': ['07:46:06']}, {}, {'0.0.0.0': ['21:19:02', '21:45:21', '21:22:04', '21:18:53', '21:38:47', '21:22:52', '21:38:49', '21:22:05', '21:18:55', '21:22:03', '21:18:45', '21:19:01', '21:22:53', '21:18:25', '21:38:51', '21:22:09', '21:18:15'], '192.168.1.193': ['20:09:24', '20:33:57', '20:09:13', '20:09:39', '20:09:29', '20:03:06', '20:09:33', '20:33:58', '20:09:19', '20:09:38', '20:09:37', '20:18:28', '20:09:17', '20:09:22', '20:33:59', '20:29:53', '20:07:47', '20:09:36', '20:18:29', '20:03:04', '20:34:00'], '172.16.12.31': ['18:57:32'], '192.168.1.120': ['20:43:06', '20:43:05', '20:43:04'], '192.168.1.186': ['20:18:36']}]

for dct in d:
    for key in dct.copy():
        if len(dct[key]) <= 1:
           dct.pop(key,None)
d=[{'10.0.0.155':['19:48:46','20:15:46','19:49:37','20:15:08','19:48:46','19:47:30','19:49:13','20:15:50','19:45:34','19:45:33','19:49:13','19:49:36','19:50:02','19:54:25','20:15:06','19:45:25','20:15:49','19:25','19:47:33','168.1.24:24','20:23''192:242''['20:14:07', '20:14:09']}, {}, {'10.48.18.47': ['07:46:06']}, {}, {'0.0.0.0': ['21:19:02', '21:45:21', '21:22:04', '21:18:53', '21:38:47', '21:22:52', '21:38:49', '21:22:05', '21:18:55', '21:22:03', '21:18:45', '21:19:01', '21:22:53', '21:18:25', '21:38:51', '21:22:09', '21:18:15'], '192.168.1.193': ['20:09:24', '20:33:57', '20:09:13', '20:09:39', '20:09:29', '20:03:06', '20:09:33', '20:33:58', '20:09:19', '20:09:38', '20:09:37', '20:18:28', '20:09:17', '20:09:22', '20:33:59', '20:29:53', '20:07:47', '20:09:36', '20:18:29', '20:03:04', '20:34:00'], '172.16.12.31': ['18:57:32'], '192.168.1.120': ['20:43:06', '20:43:05', '20:43:04'], '192.168.1.186': ['20:18:36']}]
对于d中的dct:
对于dct.copy()中的键:

if len(dct[key])非常感谢您的关注。我可以看到在字典列表的末尾有两个包含一个列表值的字典没有被删除或删除。您能帮我删除它们吗。这些字典是“'172.16.12.31':['18:57:32']”和“'192.168.1.186':['20:18:36']”