修改词典列表中指定键的值

时间:2018-04-26 09:27:23

标签: python list dictionary

我有一个json对象列表(词典)<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.music.zirakmistry.musicstreamingapp"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".PlayerService" android:enabled="true" android:exported="true" /> </application> </manifest>

ds_list

我需要修改每个对象的属性。

所以这是我的解决方案:

ds_list = [ { "status": "NEW" },  { "status": "UP_TO_DATE" }]

它有效,但我不太喜欢它,特别是if we_are_processing: result = list(map(lambda ds: ds.update({'status': 'PROCESSING'}) or ds, ds_list)) result = [ { "status": "PROCESSING" }, { "status": "PROCESSING" }] update()

实现它的更多pythonic(可读)方法是什么?

1 个答案:

答案 0 :(得分:1)

Pythonic的方法是使用for循环:

ds_list = [ { "status": "NEW" },  { "status": "UP_TO_DATE" }]

for item in ds_list:
    item['status'] = 'PENDING'

# [{'status': 'PENDING'}, {'status': 'PENDING'}]