Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在Python中理解groupby列表(从C#/LINQ的角度来看)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试切换到只使用python。我在C中使用得相当广泛的是LINQ。在这个练习中,目标是获取一组键-值对,键是每个月的,值是该月消息数的一个计数,如何使用python执行类似的操作,或者可能有什么更好的方法可以做到这一点?在</p> <pre><code>class MainClass { public static void Main (string[] args) { string[] months = { "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" }; var log = LineReader (); Dictionary<string, int> cumulativeMonths = new Dictionary<string, int> (); months.ToList () .ForEach (f => { cumulativeMonths.Add(f, log.GroupBy(g => g.Split(' ').First().ToLower()) .Where(w => w.Key == f).ToList().Count()); }); } public static IEnumerable<string> LineReader() { Console.WriteLine ("Hello World!"); using (StreamReader sr = new StreamReader (File.OpenRead ("/var/log/messages"))) { while (!sr.EndOfStream) { yield return sr.ReadLine (); } } } } </code></pre> <p>测试输入:</p> ^{pr2}$ <p>测试输出将是一个字典: {一月:64562,二月:38762}。。。。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>是的,这正是我自己想出的,我想我想知道是否有一种更优雅(一行式)的方法来解决这个问题:</p> <pre><code>fh = open("/var/log/messages", encoding = "ISO-8859-1") fh.seek(0) febMessages = [x for x in fh if x.split(' ')[0].lower() == 'feb'] len(febMessages) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
2 回答
如何在pyobj中停止线程
3 回答
如何在pyobj中生成线程
6 回答
如何在pyodbc中为记录集指定游标类型?
3 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
3 回答
如何在pyodbc中使用executemany运行多个SELECT查询
4 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
4 回答
如何在pyodbc中控制连接池的大小?
1 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
3 回答
如何在pyODBC查询中参数化日期戳?
5 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
5 回答
如何在pyodb中安装所有驱动程序
2 回答
如何在pyodb嵌套循环中调用不同的查询
9 回答
如何在pyomo.environ公司modu装置
3 回答
如何在Pyomoconstraints中建模逻辑或量词
5 回答
如何在Pyomo中为约束使用数组
9 回答
如何在pyomo中使用集和范围集的多级索引?
5 回答
如何在PYOMO中分配伪二进制变量
3 回答
如何在Pyomo中创建OR约束?
3 回答
如何在Pyomo中动态地将变量添加到列表中?
7 回答