python遍历list并修改其key对应的value
时间: 2023-08-13 17:07:35 浏览: 50
可以使用 `for` 循环遍历列表中的每一个元素,然后修改每个元素的键所对应的值,具体方法如下:
```python
my_list = [{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 25}, {'name': 'Charlie', 'age': 30}]
# 遍历列表中的每个元素
for i in range(len(my_list)):
# 修改每个元素中'name'键所对应的值
my_list[i]['name'] = my_list[i]['name'].upper()
print(my_list)
```
这将输出以下结果:
```
[{'name': 'ALICE', 'age': 20}, {'name': 'BOB', 'age': 25}, {'name': 'CHARLIE', 'age': 30}]
```
上面的代码中,我们使用了 `for` 循环来遍历列表中的每个元素。在每次循环中,我们使用索引 `i` 来访问当前元素,并使用字典的键来获取对应的值,然后修改这个值。最后,我们打印出修改后的列表。
相关问题
python 遍历获取json key 对应的 多个value
可以使用递归函数来遍历 JSON 中的所有键值对,并查找指定键的多个值。以下是一个示例代码:
```python
def find_values(key, json_dict):
results = []
# 如果当前值是一个字典,则递归调用自身
if isinstance(json_dict, dict):
for k, v in json_dict.items():
if k == key:
results.append(v)
elif isinstance(v, dict):
results.extend(find_values(key, v))
elif isinstance(v, list):
for item in v:
results.extend(find_values(key, item))
# 如果当前值是一个列表,则递归调用自身
elif isinstance(json_dict, list):
for item in json_dict:
results.extend(find_values(key, item))
return results
```
这个函数接受两个参数:要查找的键和 JSON 字典。它会递归地遍历整个 JSON 树,查找所有与指定键匹配的值,并将它们添加到结果列表中。如果值是一个列表或字典,则递归调用自身来查找更多匹配项。
以下是一个使用示例:
```python
import json
# 示例 JSON 数据
json_data = '''
{
"name": "John",
"age": 30,
"pets": [
{"name": "Fluffy", "type": "cat"},
{"name": "Fido", "type": "dog"}
],
"friends": [
{"name": "Alice", "age": 28},
{"name": "Bob", "age": 35}
]
}
'''
# 将 JSON 数据解析为 Python 对象
data = json.loads(json_data)
# 查找 "name" 对应的所有值
results = find_values("name", data)
print(results) # 输出: ['John', 'Fluffy', 'Fido', 'Alice', 'Bob']
```
在这个示例中,我们将 JSON 数据解析为 Python 对象,并使用 `find_values` 函数查找所有名为 "name" 的值。结果是一个包含所有匹配值的列表,包括顶层键值对和嵌套在列表和字典中的值。
python 遍历 变更OrderedDict类型里的 key value
`OrderedDict` 类型的键值对是有序的,如果你需要遍历并修改其中的键值对,可以使用 `items()` 方法获取键值对列表,然后对列表进行操作。
下面是一个示例代码:
```python
from collections import OrderedDict
my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print("原字典:", my_dict)
for key, value in my_dict.items():
if key == 'b':
my_dict[key] = 20
my_dict.move_to_end(key, last=False)
print("变更后字典:", my_dict)
```
输出结果如下:
```
原字典: OrderedDict([('a', 1), ('b', 2), ('c', 3)])
变更后字典: OrderedDict([('b', 20), ('a', 1), ('c', 3)])
```
在循环中,我们通过判断键是否为 `'b'`,如果是则将其值修改为 `20`,然后通过 `move_to_end()` 方法将其移动到字典的最前面。需要注意的是,`move_to_end()` 方法只在 Python 3.2 及以上版本中才有,如果你使用的版本较低,需要使用其他方式将键值对移动到最前面。