python中能否将字典当做值赋给列表呢?
我在对代码做了一个简单的演示,但是为什么不行呢?还是说python就不能列表套字典,只能是字典套列表?
>>> a=[]
>>> b=0
>>> a[b]={'key':'vi'}
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
a[b]={'key':'vi'}
IndexError: list assignment index out of range
>>>
这个问题跟列表嵌套无关,正常的赋值也会说你的那个错误。
正确的做法是用数组的append方法。
a = []
表示这是一个空列表。不存在任何元素。
python是能把字典赋值给列表元素的。
a.append({'key':'vi'})
a是个空列表,你访问a[0]显然越界
list assignment index out of range 意思是指你访问数组index越界。
Python知识点:
List数据类型特性:
1、List的每个元素可以Python的任意数据类型(Boolean,Number,String,List,Dict,Set……)
2、List不可以越界访问,依旧是不能访问不存在的List元素
代码分析:
// 创建一个空List,并将该空List的引用赋值给标识符a
a=[]
// 赋值0给标识符b
b=0
// a[b]此时的含义是,访问List a的第0个元素,然而此时List a还是空的,也就是a[0]不存在,这叫越界访问。
// 在Python中,不允许越界访问,此时会抛出错误:IndexError: list assignment index out of range
a[b]={'key':'vi'}