基础数据结构的CRUD操作
-
List(列表)
list中存的元素是引用
-
create(增加)
-
append
末尾添加元素
>>> l = [] >>> id(l) 55200584 >>> l.append("a") >>> l ['a'] >>> id(l) 55200584
-
+
和+=
-
+
拼接两个列表, 然后返回一个新列表
-
+=
>>> l = ['a'] >>> id(l) 55200664 >>> l += ['b'] >>> id(l) 55200664 >>> l ['a', 'b']
-
-
*
和*=
>>> a = 'a' >>> id(a) 53622432 >>> l = [a] * 10 >>> l ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'] >>> id(l[0]) 53622432 >>> id(l[1]) 53622432 >>> id(l[9]) 53622432 # 赋值语句之后, a已经是一个新的对象了 >>> a = 'b' >>> l ['a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'] >>> id(a) 53647264
-
insert
指定位置添加元素
l.insert(0, 'b')
-
-
Retrieve(检索)
-
索引取值
所有序列都支持索引取值
-
切片
your_list[start:end:step] # 取一段区间 your_list[start:end] # 取最后一个值 your_list[-1] # 间隔问题 your_list[1:20:2]
-
index
>>> l ['a', 'b', 'c'] >>> l.index('a') 0
-
-
Update(更新)
-
索引赋值
l[0] = 'a_1'
-
切片赋值
>>> l ['a_1', 'a_2', 'b', 'c'] >>> l[0:2] = "a" >>> l ['a', 'b', 'c'] >>> l[0:2] = 1
-
-
DELETE(删除)
-
pop()
从末尾删除元素并返回
>>> l ['a', 'b', 'c'] >>> x = l.pop() >>> l ['a', 'b'] >>> x 'c'
-
clear()
清楚当前列表的元素, 不会改变列表的内存地址.
-
-
★SORT(排序)
-
sort()
>>> l [1, 3, 2, 6, 4] >>> l.sort() >>> l [1, 2, 3, 4, 6]
-
sorted
排序后返回新列表
>>> l2 = sorted(l) >>> l [1, 3, 2, 6, 4] >>> l2 [1, 2, 3, 4, 6] >>> id(l) 55201384 >>> id(l2) 55200984
-
reverse
>>> l2 [1, 2, 3, 4, 6] >>> l2.reverse() >>> l2 [6, 4, 3, 2, 1]
-
reversed
倒序之后返回新列表
>>> l [1, 3, 2, 6, 4] >>> list(reversed(l)) [4, 6, 2, 3, 1]
-
-
-
tuple
-
Create
无
-
Retrieve
- 索引取值
- index
- 切片
-
Update
无
-
Delete
无
-
-
dict
-
Create
-
键对值赋值
-
update
提供合并字典的功能
>>> d {'a': 1} >>> d2 = {"b":2, "c": 3} >>> d.update(d2) >>> d {'a': 1, 'b': 2, 'c': 3}
-
setdefault
如果字典中没有当前key, 那么就设置默认值
>>> d {'a': 1, 'b': 2, 'c': 3} >>> d.setdefault('b', 0) 2 >>> d.setdefault('d', 0) 0 >>> d {'a': 1, 'b': 2, 'c': 3, 'd': 0}
-
-
Retrieve
-
键对值访问
-
get
键对值访问缺失key会报错, 而get可以指定默认值
>>> d['e'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'e' >>> d.get('f') >>> d.get('f', 0) 0
-
keys()
返回所有key
d.keys()
-
values()
返回所有value
d.values()
-
items()
返回所有键对值
d.items()
-
-
Update
-
键对值赋值
d['a'] = 100
-
update
>>> d.update({"b": 200, "c": 300}) >>> d {'a': 100, 'b': 200, 'c': 300, 'd': 0}
-
-
Delete
-
pop(key)
删除当前元素并返回value
-
popitem()
对于人来说, 相当于随机返回一个item
-
clear()
-
-
-
set
-
Create
s = set() s = {"aa"}
- add
- update
-
Retrieve
-
运算符
in
>>> s {'a'} >>> "a" in s True
-
-
update
-
union
合并两个set, 并返回一个新的set
-
-
delete
-
remove 和discard
discard缺失元素时不会报错, 而remove会报错
>>> s {'b', 'c', 'a'} >>> s.remove("a") >>> s {'b', 'c'} >>> s.discard("e") >>> s.remove("a") Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'a' >>>
-
pop()
当成无序删除并返回元素
-
-
了解变量和引用
-
变量简单地说就是指向了一个实体
-
引用简单地说就是指向变量的变量
>>> a = 1 >>> b = a >>> id(a) 1778508560 >>> id(b) 1778508560