You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历字典数组,批量将'one'键值从'test'改为'done'?

实现方案

Got it, let's tackle this problem. You have a list of dictionaries and need to update the 'one' key's value from 'test' to 'done' for each entry. Here are a few straightforward and practical ways to do this in Python:

1. 基础for循环(最直观易读)

This is the go-to approach if you want clear, easy-to-follow code that's friendly for beginners. We'll iterate through each dictionary in the list and modify the value directly:

sample = [ {'one':'test', 'two': 'hello'}, {'one':'test', 'two': 'world'}, {'one': 'test', 'two': 'python'} ]

for item in sample:
    # Optional: Add checks to avoid KeyError or unintended changes
    if 'one' in item and item['one'] == 'test':
        item['one'] = 'done'

print(sample)

The checks here are optional but recommended—they prevent errors if some dictionaries don't have the 'one' key, and ensure we only modify entries where the value is actually 'test'.

2. 列表推导式(简洁高效)

If you prefer more concise code, a list comprehension can create updated dictionaries in one line. This method creates new dictionaries instead of modifying the original ones, which is great if you need to keep the original data intact:

sample = [ {'one':'test', 'two': 'hello'}, {'one':'test', 'two': 'world'}, {'one': 'test', 'two': 'python'} ]

# Create new dictionaries, updating 'one' only if its value was 'test'
sample = [{**d, 'one': 'done'} if d.get('one') == 'test' else d for d in sample]

print(sample)

The **d syntax unpacks all existing key-value pairs from the original dictionary, then we overwrite the 'one' key with 'done' when needed.

3. map函数(函数式编程风格)

For a functional programming approach, you can use map() to apply a helper function to each dictionary in the list:

sample = [ {'one':'test', 'two': 'hello'}, {'one':'test', 'two': 'world'}, {'one': 'test', 'two': 'python'} ]

def update_entry(d):
    if d.get('one') == 'test':
        d['one'] = 'done'
    return d

# Apply the function to every item and convert back to a list
sample = list(map(update_entry, sample))

print(sample)

This keeps the logic encapsulated in a separate function, which can be reused if you need to perform this update elsewhere in your code.

Quick Note

If you're 100% sure every dictionary in the list has the 'one' key with the value 'test', you can skip the conditional checks to simplify the code. For example, in the for loop, just do item['one'] = 'done' directly.

内容的提问来源于stack exchange,提问作者watthecode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:53:47