📜  Python - 条件连接字典列表(1)

📅  最后修改于: 2023-12-03 15:18:52.713000             🧑  作者: Mango

Python - 条件连接字典列表

在Python中,我们可以利用条件语句和列表推导式来连接字典列表。这在数据处理和筛选中非常有用。下面是一个例子,用于从一个字典列表中筛选出符合条件的字典。

# 原始字典列表
students = [{'name': 'Alice', 'age': 20, 'score': 90},
            {'name': 'Bob', 'age': 18, 'score': 85},
            {'name': 'Charlie', 'age': 19, 'score': 88},
            {'name': 'David', 'age': 21, 'score': 92},
            {'name': 'Ella', 'age': 20, 'score': 95},
            {'name': 'Frank', 'age': 18, 'score': 87}]

# 筛选年龄在20岁以下的学生
under_20 = [student for student in students if student['age'] < 20]

# 输出符合条件的学生
print(under_20)

输出结果:

[{'name': 'Bob', 'age': 18, 'score': 85}, {'name': 'Charlie', 'age': 19, 'score': 88}, {'name': 'Frank', 'age': 18, 'score': 87}]

在上面的例子中,我们利用列表推导式和条件语句来生成一个新的列表,其中仅包含年龄在20岁以下的学生。列表推导式的语法格式为:

[expression for item in iterable if condition]

其中,expression表示需要根据item和condition计算出的表达式,item表示需要遍历的可迭代对象中的元素,iterable表示需要遍历的可迭代对象,condition表示一个布尔表达式,在这个条件下,将item添加到新列表中。

在上述例子中,expression为student、item为students中的每个元素、iterable为students、condition为student['age'] < 20。

除了使用条件语句,还可以使用and和or条件进行复杂的筛选。例如,我们可以筛选出年龄在18岁以上且成绩在90分以上的学生:

# 筛选年龄在18岁以上并且成绩在90分以上的学生
above_90 = [student for student in students if student['age'] >= 18 and student['score'] > 90]

# 输出符合条件的学生
print(above_90)

输出结果:

[{'name': 'Alice', 'age': 20, 'score': 90}, {'name': 'David', 'age': 21, 'score': 92}, {'name': 'Ella', 'age': 20, 'score': 95}]

在上述例子中,我们使用了and条件符号来同时筛选年龄在18岁以上且成绩在90分以上的学生。

总之,Python提供了非常便捷的语法来连接和筛选字典列表,可以让我们更加方便地处理数据。