在PHP中,我可以这样做
$a['name'][] = 'el1';
Run Code Online (Sandbox Code Playgroud)
在Python中,我必须这样做:
a = {}
a['name'] = []
a['name'].append('el1')
Run Code Online (Sandbox Code Playgroud)
上述方法的问题在于我a['name']在迭代时丢失了下一个循环的值,因为我正在重新初始化a['name']为空列表.
有没有办法将项目附加到列表而不必先用空列表初始化?
Rac*_*ers 10
您可以使用defaultdict模块:
from collections import defaultdict
a = defaultdict(list)
Run Code Online (Sandbox Code Playgroud)
使用此设置,模块在首次访问时初始化为空列表,因此您可以执行以下操作:
a['name'].append('el1')
Run Code Online (Sandbox Code Playgroud)
而不用担心它.
希望有所帮助!
因此,按照您所说的“不”的方式,您只能append针对存在的事物。也就是说,您根本不必附加到此内容,您可以这样做:
a = {'name': ['el1']}
Run Code Online (Sandbox Code Playgroud)
无需像那样手动创建您的结构。
如果您想在尝试附加到列表之前检查键是否存在,您可以执行以下操作:
a.setdefault('name', []).append('el1')
Run Code Online (Sandbox Code Playgroud)
to 的第二个参数get也给你一个默认值,如果name不存在,则附加到一个空列表。
| 归档时间: |
|
| 查看次数: |
4526 次 |
| 最近记录: |