classes = [
{"name": "n_1", "age": 24, "grade": "A"}, {"name": "n_2", "age": 23, "grade": "B"}, {"name": "n_3", "age": 28, "grade": "A"}, {"name": "n_4", "age": 24, "grade": "A"}, {"name": "n_5", "age": 25, "grade": "C"}, {"name": "n_6", "age": 21, "grade": "D"}, {"name": "n_7", "age": 27, "grade": "A"},]
通过map函数将上述同学的age + 1(对原数据结构有影响, 尽量不要用lambda)
参考:
for c in classes:
c["age"] = c["age"] + 1
结果:
[{'name': 'n_1', 'age': 25, 'grade': 'A'}, {'name': 'n_2', 'age': 24, 'grade': 'B'}, {'name': 'n_3', 'age': 29, 'grade': 'A'}, {'name': 'n_4', 'age': 25, 'grade': 'A'}, {'name': 'n_5', 'age': 26, 'grade': 'C'}, {'name': 'n_6', 'age': 22, 'grade': 'D'}, {'name': 'n_7', 'age': 28, 'grade': 'A'}]
先使用map函数调用自定义转换函数,然后再将map对象转成列表即可:
classes = [{"name": "n_1", "age": 24, "grade": "A"},{"name": "n_2", "age": 23, "grade": "B"},{"name": "n_3", "age": 28, "grade": "A"},{"name": "n_4", "age": 24, "grade": "A"},{"name": "n_5", "age": 25, "grade": "C"},{"name": "n_6", "age": 21, "grade": "D"},{"name": "n_7", "age": 27, "grade": "A"},]
def fun(c: dict):
c['age'] = c['age'] + 1
return c
res=list(map(fun, classes))
print(res)
如有帮助,请点采纳。
def ageadd(x:dict):
x['age']+=1
return x
classes = [
{"name": "n_1", "age": 24, "grade": "A"}, {"name": "n_2", "age": 23, "grade": "B"}, {"name": "n_3", "age": 28, "grade": "A"}, {"name": "n_4", "age": 24, "grade": "A"}, {"name": "n_5", "age": 25, "grade": "C"}, {"name": "n_6", "age": 21, "grade": "D"}, {"name": "n_7", "age": 27, "grade": "A"},]
map(ageadd,classes)
print(classes)
私以为无解,map需要导入一个函数,而你这是非标函数,必须自己定义一个。
还有种方法是拆成列表,对列表+1在组回去。