基于原始目录的键创建新词典

2024-04-25 17:13:43 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一本字典,里面有来自csv文件的网络流量。每个键都是一个源地址。例如:

52.113.56.149
[['tcp','https','34.567.12.899','2'...]['udp','https',...]]

特定源地址的每个流都包含不同的值,其包含方式如下[[flow1],[flow2]…]。但是每个源地址不包含相同数量的流。如何为每个源地址(原始字典中的键)创建一个新字典你知道吗

编辑: 原始字典称为datadict,其格式如上所述,因此每个键(源地址)都有值(当我打印dict时,它看起来是这样的:

12.464.67.478
[['tcp','https','etc],[another flow]...]

35.482.19.191
[['udp','...']]

但从原来的字典,我想根据源地址的新字典。因此,每个新字典都是源地址和来自该源地址的流。你知道吗


Tags: 文件csvhttps编辑数量字典格式方式
1条回答
网友
1楼 · 发布于 2024-04-25 17:13:43

你可以试试这个:

val = [['tcp','https','34.567.12.899','2'...]['udp','https',...]]

new_dict = {i[2]:i[:2]+i[3:] for i in val}

这将输出IP地址作为密钥,并将附加信息作为存储在列表中的值:

{'34.567.12.899': ['tcp', 'https', '2'....], ....}

这个例子使用dict理解来获取列表的第二个元素,即IP地址,然后将列表中的其余数据存储为值,而不包含IP地址。值的拼接将占用第三个元素,而不计算第二个元素,然后从第三个元素开始将该子列表添加到列表的其余部分。你知道吗

编辑:

以下是一种存储数据的方法,以便源地址也包含在值中:

new_dict = {i[2]:i for i in val}

相关问题 更多 >