唯一的fromto组合,在变量循环中包含其后的所有持续时间

2024-09-27 07:29:53 发布

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

在BASH或Python中,从一个用unique压缩的日志文件中获取信息时遇到了一个问题。你知道吗

我有一个巨大的日志文件,我做了一个grep在它上面找到一个特定国家的信息,以获得唯一的“从街道,城市”和“到街道,城市”和csv格式的旅行持续时间。你知道吗

从同一条街道到同一条街道和同一条街道之间的相同持续时间也会被计算在内,但显示为1个条目和点击次数。你知道吗

我还设法对它们进行了排序,使它首先在同一个“from street”上排序,然后在“to street”上排序。你知道吗

但我想要的是,在街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上,街上。你知道吗

输入CSV:

 from-street,from-city,destination-street,destination-city,duration
 Street1,City1,Street2,City2,30min
 Street1,City1,Street2,City2,10min
 Street1,City1,Street2,City2,15min
 Street1,City1,Street3,City3,28min
 Street1,City1,Street3,City3,20min
 Street1,City1,Street3,City3,5min
 Street2,City2,Street4,City4,12min

需要循环的输出变量:

$from-street,$from-city,$destination-street,$destination-city,$duration1,$duration2,$duration3
Street1,City1,Street2,City2,30min,10min,15min
Street1,City1,Street3,City3,28min,20min,5min
Street2,City2,Street4,City4,12min

我希望有人能帮我,因为我做了第一个扩展grep命令,并把uniques的csv格式,我坚持与下一部分,什么是上面说的。你知道吗

也许Bash是首选的方法,因为您可以直接在1平滑脚本中的循环之前使用grep。但我也在努力学习Python,所以它也非常受欢迎。你知道吗

谢谢你们


Tags: 文件csvfromstreetcity排序街道destination
1条回答
网友
1楼 · 发布于 2024-09-27 07:29:53

在Python中,可以创建一个tupleStreet1, City1, Street2, City2作为dict对象的键,并使用^{}附加值。你知道吗

当您阅读csv文件时,您将得到如下列表:

my_csv = [ ['Street1', 'City1','Street2','City2','30min'],
           ['Street1', 'City1','Street2','City2','10min'],
           ['Street1', 'City1','Street3','City3','28min']]

然后,以所需格式存储值的代码将是:

from collections import defaultdict

my_dict = defaultdict(list)

for item in my_csv:
    my_dict[tuple(item[:4])].append(item[4])

my_dict保留的最终值将是:

{
     ('Street1', 'City1', 'Street2', 'City2'): ['30min', '10min'], 
     ('Street1', 'City1', 'Street3', 'City3'): ['28min']
}

注意:字典是自然无序的。因此,您将丢失行的出现顺序。你知道吗

相关问题 更多 >

    热门问题