Python 怎么实现类似 PHP array_column 方法的效果?

Python 怎么实现类似 PHP array_column 方法的效果?

Python 怎么实现类似 PHParray_column 方法的效果:

nested_list = [  

{'id': 1, 'name': 'Alice', 'age': 25},

{'id': 2, 'name': 'Bob', 'age': 30},

{'id': 3, 'name': 'Charlie', 'age': 35},

]

把所有的 id 列的值提取出来 甚至把别的字段的值作为键名

Python 怎么实现类似 PHParray_column 方法的效果:


回答:

得封装成两个方法会比较好,php一些方法属于历史遗留问题,设计的并不符合某些规范

def extract_column(data, column_name):

"""

提取列表中指定列名的值,并返回一个列表

:param data: 包含字典的列表

:param column_name: 要提取的列名

:return: 包含提取值的列表

"""

return [item[column_name] for item in data]

def extract_column_to_dict(data, key_column_name, value_column_name):

"""

提取列表中指定键名和值名的字典

:param data: 包含字典的列表

:param key_column_name: 键名对应的列名

:param value_column_name: 值对应的列名

:return: 包含提取键值对的字典

"""

return {item[key_column_name]: item[value_column_name] for item in data}

# 使用方法

data = [

{'id': 1, 'name': 'Alice', 'age': 25},

{'id': 2, 'name': 'Bob', 'age': 30},

{'id': 3, 'name': 'Charlie', 'age': 35},

]

names = extract_column(data, 'name')

print(names) # 输出:['Alice', 'Bob', 'Charlie']

new_dict = extract_column_to_dict(data, 'id', 'name')

print(new_dict) # 输出:{1: 'Alice', 2: 'Bob', 3: 'Charlie'}


回答:

nested_list = [  

{'id': 1, 'name': 'Alice', 'age': 25},

{'id': 2, 'name': 'Bob', 'age': 30},

{'id': 3, 'name': 'Charlie', 'age': 35},

]

ids = [item['id'] for item in nested_list]

用字典推导:

# 用'name'作为键,'id'作为值

name_to_id = {item['name']: item['id'] for item in nested_list}

以上是 Python 怎么实现类似 PHP array_column 方法的效果? 的全部内容, 来源链接: utcz.com/p/939108.html

回到顶部