list(列表)
list本身是可更改的,list里面的元素可以是任意类型。相当于C++里面用list存放指针,指针指向不同的变量
- C++里面list的存储方式是链表
- python里面list的存储方式是线性表,即一块连续的空间来存储数据。删除O(n),修改访问O(1).
- 线性表的缺点是:插入会移动整个表,新增和删除会realloc存储空间。对于大列表的新增和删除操作,可以调用C接口实现以提高效率 list的基本用法参见手册
tuple(元组)
tuple指向不可更改,(但是值可以变,例如元组中有一个list元素)
# 创建元组
# 函数参数的传递也相当于传递元组
t1 = ("v1","v2",3)
dictionary(字典)
字典定义格式如下
{"key1":value1,"key2":value2}
注意value相当于容器,可以是任意类型,而key需要计算hash,所以只能是string或Number
dic = {"name":"python",
"year":1991,
"ver":3.7,
4:5,
"keys":["print","for"]}
# 新增和更改
dic[4] = 6
dic["src"] = "C"
# 删除
del dic[4] # 删除下标4
dic.clear() # 整表删除
# 判断关键字
dic["arg"] # 由于没有arg关键字,会抛出KeyError异常
我们可以捕获上述代码的KeyError异常
try:
print(dic["arg"])
except KeyError:
print("dic KeyError")
也可以使用if
语句来判断关键字是否在字典里
if "year" in dic:
print("key year in dic")
else:
print("key year not in dic")