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

作者站长头像
站长
· 阅读数 19

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 列的值提取出来 甚至把别的字段的值作为键名

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

回复
1个回答
avatar
test
2024-06-24

得封装成两个方法会比较好,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'}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容