ベースPythonパッケージで動作する上記の回答のいくつかに触発されて、いくつかのパフォーマンスを比較しました(Python 3.7.3を使用)。
方法1:ast
import ast
list(map(str.strip, ast.literal_eval(u'[ "A","B","C" , " D"]')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, ast.literal_eval(u'[ \"A\",\"B\",\"C\" , \" D\"]')))", setup='import ast', number=100000)
# 1.292875313000195
方法2:json
import json
list(map(str.strip, json.loads(u'[ "A","B","C" , " D"]')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, json.loads(u'[ \"A\",\"B\",\"C\" , \" D\"]')))", setup='import json', number=100000)
# 0.27833264000014424
方法3:インポートしない
list(map(str.strip, u'[ "A","B","C" , " D"]'.strip('][').replace('"', '').split(',')))
# ['A', 'B', 'C', 'D']
import timeit
timeit.timeit(stmt="list(map(str.strip, u'[ \"A\",\"B\",\"C\" , \" D\"]'.strip('][').replace('\"', '').split(',')))", number=100000)
# 0.12935059100027502
最悪の可読性を備えたメソッドが最高のパフォーマンスを備えたメソッドであると私が考えたのを見てがっかりしました...最も可読性の高いオプションを使用するときに考慮すべきトレードオフがあります...私が通常使用しているワークロードのタイプについてわずかにパフォーマンスの高いオプションでの値の読みやすさ。ただし、通常は状況によって異なります。