php中文网

Python如何模拟PHP的array_column函数功能?

php中文网

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'}

以上就是Python如何模拟PHP的array_column函数功能?的详细内容,更多请关注php中文网其它相关文章!