数据类型的增删改查
下面给出了主要方法的总结,并且对个别方法进行了举例说明。
数据类型 | 字符串 | 列表 | 元组 | 字典 | 集合 |
---|---|---|---|---|---|
新建 | ’ ’ | [1,2], list([1,2]) | (1,2),tuple([1,2]) | {1:2,3:4},dict([[1,2],[3,4]]),fromkeys(), dict(zip(lst1,lst2)) | set([1,2,3,4]) |
增 | + * | +、append、insert、extend【复制、深、浅拷贝】 | 不可变 | 赋值 | add |
删 | 索引 | pop、remove、clear、del | 不可变 | pop、popitem、 | remove、clear |
改 | 不可变 | 索引赋值 | 不可变 | 索引、update、setdefault | |
查 | 索引 | 索引、index、count、len、sort、reverse、id | 索引 | k-v、keys、values、items、enumerate、get |
补充:
- 虽然字符串是不可变的,但是有很多方法,可以对字符串进行修改,但是需要重赋值才能更改。即原字符串没有变!
>>> name='alb123ert' >>> name.title() 'Alb123Ert' >>> name 'alb123ert' >>>
- 另外一件极其重要的事:关于赋值!!!
不可变类型 可变类型 >>> name = ‘alb123ert’
>>> name = name.title()
>>> name
‘Alb123Ert’>>> name = [1,5,3,2]
>>> x = name.sort()
>>> x
>>> name
[1, 2, 3, 5]说明不可变对象使用函数后可以重赋值 可变对象使用函数时会改变自己,赋值得到的是None
列表
>>> lst1 = [1,2]
>>> lst2 = [3,4]
>>> lst1 + lst2
[1, 2, 3, 4]
>>> lst1.insert(6,0)
>>> lst1
[1, 2, 5, 0]
>>> lst1.extend(lst2)
>>> lst1
[1, 2, 5, 0, 3, 4]
删
>>> lst1
[1, 2, 5, 0, 3]
>>> lst1.pop(0)
1
>>> lst1
[2, 5, 0, 3]
>>> lst1.remove(3)
>>> del lst1[0]
查
>>> lst1.reverse()
>>> lst1
[5, 4, 3, 2, 1]
字典
# 构建 一个或多个key,对应同一个value
>>> dct1 = {}.fromkeys([1,2,3,4],0)
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 0}
>>> dct1 = dict.fromkeys([1,2,3,4],0)
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 0}
>>> dict(zip([1,2],[3,4])) # zip
{1: 3, 2: 4}
删
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 0}
>>> dct1.pop(4)
0
>>> dct1
{1: 0, 2: 0, 3: 0}
>>> dct1.popitem()
(3, 0)
>>> dct1
{1: 0, 2: 0}
>>>
改
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 0}
>>> dct1.update({4:1})
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 1}
>>> dct1[4] = 2
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 2}
>>> dct1.setdefault(0)
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 2, 0: None}
>>> dct1.setdefault(5,0)
0
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 2, 0: None, 5: 0}
查
>>> dct1
{1: 0, 2: 0, 3: 0, 4: 2, 0: None, 5: 0}
>>> dct1.get(5)
0
>>> for k,v in enumerate(dct1):print(k,v)
...
0 1
1 2
2 3
3 4
4 0
5 5
集合运算
>>> set_a = set([1,2,3,4])
>>> set_b = set([3,4,5,6])
>>> set_a.add(9)
>>> set_a.remove(1)
>>> set_a
{2, 3, 4, 9}
>>> set_b
{3, 4, 5, 6}
>>> set_a | set_b # 并
{2, 3, 4, 5, 6, 9}
>>> set_a & set_b # 交
{3, 4}
>>> set_a - set_b # 差 set_a中独有的
{9, 2}
>>> set_b - set_a # 差
{5, 6}
>>> set_a ^ set_b # 异或 不同时有的
{2, 5, 6, 9}
>>> set_b ^ set_a
{2, 5, 6, 9}