cap*_*rap 1 python dictionary list append
我最近一直都在寻找解决方案,到目前为止无济于事.我来自php到python,遇到了关联数组的差异,我现在不确定要克服.
走这条线:
data[user]={i:{'item':row[0],'time':row[1]}}
Run Code Online (Sandbox Code Playgroud)
这data[user]显然覆盖了我的每个条目,因为它没有附加,它只是每次都替换数据.
在PHP中,如果我想在for循环中追加新的数据,我可以这样做
data[user][i][]=array('item'=>'x','time'=>'y'); // crude example
Run Code Online (Sandbox Code Playgroud)
在python中,我做不到:
data[user][]={i:{'item':row[0],'time':row[1]}}
Run Code Online (Sandbox Code Playgroud)
它对我的barfs []
我也做不到:
data[user][i]={'item':row[0],'time':row[1]}
Run Code Online (Sandbox Code Playgroud)
通过循环我是我的迭代器...我认为这是因为data[user]尚未定义,但是,操作?我已经创建了data={},但我还没有将用户填充为密钥.
在python中,我必须先定义一个键才能定义它,包括一个子键吗?
我尝试了很多.append()选项和其他奇怪的技巧,但我想知道这样做的正确方法.
我能做到:
data[user,i]={'item':row[0],'time':row[1]}
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的.
我的正确方法是什么,python朋友?
这样的事情应该有效.请注意,与PHP不同,Python具有用于数值数组(称为"列表")和关联数组(称为"词典"或"词组")的单独基本类型.
if user not in data:
data[user] = []
data[user].append({'item': row[0], 'time': row[1]})
Run Code Online (Sandbox Code Playgroud)