当前位置: 首页 > 知识库问答 >
问题:

从目录列表中获取“键”[重复]

岳杜吟
2023-03-14

我有以下数据:

[{'id': ['132605', '132750', '132772', '132773', '133065', '133150', '133185', '133188', '133271', '133298']}, 
 {'number': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']}, 
 {'id': ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']}]

获取密钥列表的最佳方法是什么(好像它是一个dict而不是一个数组)?目前我正在做:

>>> [list(i.keys())[0] for i in e.original_column_data]
['id', 'number', 'id']

但这感觉有点老土

共有3个答案

唐彦
2023-03-14

这更简单,做同样的事情:

[k for d in e.original_column_data for k in d]
=> ['id', 'number', 'id']
关冠宇
2023-03-14

第一条路

字典上的迭代为您提供了它的键,因此

>>> [key for key in dict]

给你一个钥匙清单,你可以用它得到你想要的东西

>>> [key for dict in dict_list for key in dict]

第二种方式(仅python 2)

使用.key()(在代码中使用),但无需使用list()(编辑:对于python 2)
以下是它的外观:

>>> [dict.keys()[0] for dict in dict_list]

在您的代码中,字典只有一个键,因此这两个键具有相同的结果。
但是我更喜欢第一个,因为它给出了所有字典的所有键

司徒志强
2023-03-14

这有什么不好的地方?这有点不雅。您只需执行以下操作:

>>> keys = []
>>> data = [{'id': ['132605', '132750', '132772', '132773', '133065', '133150', '133185', '133188', '133271', '133298']},
...  {'number': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']},
...  {'id': ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1']}]
>>> for d in data:
...     keys.extend(d)
...
>>> keys
['id', 'number', 'id']

或者,如果您喜欢一行:

>>> [k for d in data for k in d]
['id', 'number', 'id']
 类似资料:
  • 问题内容: 我正在寻找一种从给定的classpath目录中获取所有资源名称的列表的方法,例如。 例如,给定一个路径目录包含文件和子目录应该返回一个List 包含下列字符串: 。 它应该同时适用于文件系统和jar中的资源。 我知道我可以用Files,JarFiles和URLs编写一个简短的代码段,但是我不想重新发明轮子。我的问题是,鉴于现有的公共可用库,最快的实现方法是getResourceName

  • 我们在KMM shared/commonMain项目中包含一个assets文件夹。该资产文件夹基本上包含许多JSON文件,这些文件在不同的子文件夹中结构化。 内置。gradle,资产文件夹被添加为android资源,因此它包含在构建AAR的根目录中。 在共享模块中,文件在通用Android中按需读取 这很好用。 现在到问题,读取文件夹: 当代码通过单元测试执行时,它会工作,然后返回文件夹。一旦AA

  • 我对Mongo的Webservice调用返回以下JSON。我需要迭代这个JSON值并删除Item-product_语言,因为它包含NULL/空字符串。 你对怎么做有什么想法吗? Python 3.4版本。 { }

  • 问题内容: 我正在寻找一种从给定的目录中获取所有资源名称的列表的方法,例如。 例如,给定一个路径目录x/y/z包含文件和子目录,应该返回一个包含下列字符串:, 。 它应同时适用于文件系统和jar中的资源。 我知道我可以用和 编写一个简短的代码段,但是我不想重新发明轮子。我的问题是,鉴于现有的公共可用库,最快的实现方法是什么?和堆栈都是可行的。 问题答案: 自定义扫描仪 实施自己的扫描仪。例如:

  • 问题内容: 只是一个简单的问题,如何获得指定目录内的目录列表。 例如, 现在,我需要获取“路径”目录中的目录列表。 谢谢! 问题答案: 诸如此类(添加null检查,异常等。)

  • 假设我有一个像这样的对象数组: 我如何循环它(如果我必须),以便我得到一个特定键值的列表。让我们来举一个所有名字的列表。 多谢了。