python 如何实现类似 php array_column 方法的功能
在 php 中,array_column 函数是一个非常有用的工具,它可以从多维数组中提取指定列的值。在 python 中,没有直接对应于这个函数的方法,但我们可以使用列表推导或字典推导来实现类似的功能。
提取特定列的值
假设我们有一个包含字典的列表,类似于php中 array_column 的应用场景:
nested_list = [ {'id': 1, 'name': 'alice', 'age': 25}, {'id': 2, 'name': 'bob', 'age': 30}, {'id': 3, 'name': 'charlie', 'age': 35}, ]
为了提取所有 id 列的值,我们可以使用列表推导:
立即学习“PHP免费学习笔记(深入)”;
id_list = [item['id'] for item in nested_list]
输出:
[1, 2, 3]
提取键值对
还可以使用字典推导从列表中创建字典,其中指定列的值用作字典的键或值:
id_name_dict = {item['id']: item['name'] for item in nested_list}
输出:
{1: 'alice', 2: 'bob', 3: 'charlie'}
封装为函数
为了更方便地重复使用,我们可以将这两个方法封装成函数:
def extract_column(data, column_name): return [item[column_name] for item in data] def extract_column_to_dict(data, key_column_name, value_column_name): return {item[key_column_name]: item[value_column_name] for item in data}
现在,我们可以通过调用这些函数来轻松提取列值、键值对:
id_list = extract_column(nested_list, 'id') id_name_dict = extract_column_to_dict(nested_list, 'id', 'name') print(id_list) # 输出: [1, 2, 3] print(id_name_dict) # 输出: {1: 'Alice', 2: 'Bob', 3: 'Charlie'}