列表理解转换

时间:2016-10-03 01:54:10

标签: python list list-comprehension defaultdict

我最近开始学习Python,但我很难将下面的代码转换为列表理解:

var testImagePath = "./phototest.tif";
            if (args.Length > 0)
            {
                testImagePath = args[0];
            }

            try
            {
                using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
                {
                    using (var img = Pix.LoadFromFile(testImagePath))
                    {
                        using (var page = engine.Process(img))
                        {

                        }
                    }
                }
            }
            catch (Exception e)
            {
                Trace.TraceError(e.ToString());
                Console.WriteLine("Unexpected Error: " + e.Message);
                Console.WriteLine("Details: ");
                Console.WriteLine(e.ToString());
            }

我有可能做到吗?对此有任何帮助非常感谢。

1 个答案:

答案 0 :(得分:4)

非常简单:使用嵌套列表推导来获取所有i和一组以删除重复项。

list(set([item for __, value in defaultDict.items() for item in value]))

让我们分解一下:

  • [item for key,value in defaultDict.items() for item in value]nested list comprehension
  • set(...)将删除所有重复项 - 相当于if i not in list: list.append(i)逻辑
  • list(set(...))会将该设置转换回您的列表。