「Python」2020.03.09学习笔记 | 深浅copy+list+元组+字典

  • 学习测试开发的Day68,真棒!
  • 学习时间为1H
  • 第七次全天课20190126(下午视频2H10M-2H50M)

如果列表是[]就不存在深浅拷贝

>>> import copy
>>> a=[]
>>> c=copy.copy(a)
>>> id(a)
1427156376840
>>> id(c)
1427154913992
>>> a=[[1,2]]
>>> c=copy.copy(a)
>>> id(a)
1427156376904
>>> id(c)
1427156420616
>>> id(a[0])
1427156375048
>>> id(c[0])
1427156375048
>>>

通过list实现堆栈

image.png

代码:

stack=[3,4,5]
stack.append(6)
stack.append(7)
print(stack)
print(stack.pop())
print(stack)
print(stack.pop())
print(stack.pop())
print(stack)

结果:

PS D:\0grory\day7> python .\stack.py
[3, 4, 5, 6, 7]
7
[3, 4, 5, 6]
6
5
[3, 4]

算法(一般的测试开发,这几道题能原创出来就可以了,要使用标准的数据结构算法):
1.冒泡
2.快排
3.2分法查找
4.列表
5.哈希
6.二叉树的遍历

通过list实现队列

image.png

代码:

>>> a=[]
>>> a.append(1)
>>> a.append(2)
>>> a.append(3)
>>> a
[1, 2, 3]
>>> a.pop(0)
1
>>> a.pop(0)
2
>>> a.pop(0)
3
>>>

>>> a=[1,2,3]
>>> a.pop(0)
1
>>> a.pop()
3
>>> a
[2]
>>>

数据结构的主要作用是存数据,先进先出,还是先进后出

创建元组

image.png

list 与tuple转换

>>> a=()
>>> type(a)

>>> a=(1,2,3)
>>> a[0]=20
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object does not support item assignment
>>> a=list(a)
>>> a
[1, 2, 3]
>>> a[0]=4
>>> a[1]=5
>>> a[2]=6
>>> a
[4, 5, 6]
>>> a=tuple(a)
>>> a
(4, 5, 6)
>>>

访问元组

image.png

修改元组

image.png

删除元组

image.png

元组运算符

image.png
>>> a
(4, 5, 6)
>>> a[0]
4
>>> a[1]
5
>>> len(a)
3
>>> a*3
(4, 5, 6, 4, 5, 6, 4, 5, 6)
>>> a+(1,2,3)
(4, 5, 6, 1, 2, 3)
>>> i in a
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'i' is not defined
>>> 1 not in a
True
>>> a
(4, 5, 6)
>>>
>>> max((1,2,3))
3
>>> min((1,2,3))
1

元素索引截取

image.png
>>> a=tuple(range(10))
>>> a
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

>>> a[:]
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

>>> a[::2]
(0, 2, 4, 6, 8)

>>> a[3:6]
(3, 4, 5)
>>>

切片倒着取

>>> a[::-2]
(9, 7, 5, 3, 1)

>>> a[-3:-8:-2]
(7, 5, 3)
>>>

元组的内置函数

Python元组包含了以下内置函数:

1 len(tuple) 计算元组元素个数。

2 max(tuple) 返回元组中元素最大值。

3 min(tuple) 返回元组中元素最小值。

4 tuple(seq) 将列表转换为元组

元组的遍历和查找

image.png

字典的定义

image.png
>>> d=[]
>>> d={}
>>> type(d)

>>> d[0]=1
>>> d
{0: 1}
>>> d[0]=2
>>> d
{0: 2}
>>>

判断在不在的方法

>>> 0 in d
True
>>> 0 in d.keys()
True
>>>

删除

>>> del d[0]
>>> d
{}
>>> del d[0]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 0
>>>

遍历

方法一:遍历Key

>>> d={"a":1,"b":2,"c":3}
>>> for i in d:
...     print(i)
...
a
c
b

方法二:keys

>>> for i in d.keys():
...     print(i)
...
a
c
b
>>> d.keys()
dict_keys(['a', 'c', 'b'])
>>> list(d.keys())
['a', 'c', 'b']

方法三:遍历values

>>> list(d.values())
[1, 3, 2]
>>> for i in d.values():
...     print(i)
...
1
3
2
>>>

方法四:遍历items()

>>> list(d.items())
[('a', 1), ('c', 3), ('b', 2)]
>>>
>>> for k,v in d.items():
...     print(k,"=",v)
...
a = 1
c = 3
b = 2
>>>

你可能感兴趣的:(「Python」2020.03.09学习笔记 | 深浅copy+list+元组+字典)