从JS转Python:提取列表中对象的_id生成新列表
提取列表中字典的_id值并转为数字列表
嘿,刚从JavaScript转用Python是吧?这个需求其实挺常见的,Python里有几种简洁的方式能搞定,我给你分享两个最常用的:
方法一:列表推导式(推荐,直观易读)
首先得注意,Python里字典的字符串键必须用引号包裹,所以你的原始列表要写成这样:
original_data = [{'_id': '1', 'data': {}}, {'_id': '2', 'data': {}}]
然后用列表推导式遍历每个元素,提取_id并转成整数:
id_list = [int(item['_id']) for item in original_data]
执行后id_list就是你要的[1, 2]啦。如果担心有的字典里可能没有_id键,还可以加个判断避免报错:
id_list = [int(item['_id']) for item in original_data if '_id' in item]
方法二:使用map函数
如果你习惯函数式编程风格,也可以用map配合匿名函数来实现:
id_list = list(map(lambda x: int(x['_id']), original_data))
这里map会把每个元素传给lambda函数处理,最后用list()把map对象转成列表,结果和上面完全一致。
总的来说,列表推导式在Python社区更受欢迎,因为它的可读性更强,尤其是对刚转语言的新手来说,更容易理解逻辑。
内容的提问来源于stack exchange,提问作者Edgaras Karka
相关产品推荐
相关产品推荐

