python - 基于特定键的列表中的列表
问题描述
嗨,我是编程新手。我有问题。我不知道这个问题有什么更好的解决方案。问题是这样的..我有一个清单说,
list = ['a', '123', '643', 'b', '890', '234', '123', 'd', '432', '678' ]
所以我想制作 3 个列表或一个 json 对象,实际上可能的情况请提出更好的选择。这个想法是
list_a = ['123', '643']
list_b = ['890', '234', '123']
list_d = ['432', '678']
或者,
list_ob = {"a": ["123", "643"], "b": ["890", "234", "123"], "d": ["432", "678"] }
这里 a, b, d 只是一些特定的字符或者可以是单词。请帮帮我。
解决方案
这很容易达到,您只需要循环检查它是否为 alpha,然后将 alpha 拾取为key
. 如下所示:
In [92]: key = ''
...: b = {}
...: a = ['a', '123', '643', 'b', '890', '234', '123', 'd', '432', '678' ]
...: for i in a:
...:
...: if i.isalpha():
...: b[i]=[]
...: key = i
...: else:
...: b[key].append(i)
In [94]: b
Out[94]: {'a': ['123', '643'], 'b': ['890', '234', '123'], 'd': ['432', '678']}
要获得第二个预期结果,只需简单地执行以下操作:
In [95]: b.values()
Out[95]: [['123', '643'], ['890', '234', '123'], ['432', '678']]
推荐阅读
- javascript - 如何使用 Typescript 在点前转换序列号的前两位?
- pyspark - pyspark如何检查给定的spark数据框是否已使用inferSchema = True创建
- python - FastAPI 从文件中读写
- python - Python_squarify_Legend 基于块的颜色
- flutter - Flutter - 嵌套 OnTap 不适用于 ListTile
- javascript - 为什么我的组件上的键不被认为是唯一的?
- c# - 现有中间件中的 DI
- uml - 如何指示类(或接口)与在函数中使用类型参数的接口之间的关系
- java - 这是检测是否启用了无障碍服务的好方法吗?
- elasticsearch - Elasticsearch - 只要我使用正确的开始时间,在我的初始查询中使用“searchafter”有什么问题吗?