都说好记性不如烂笔头,况且我的记性不是好只能一步一个脚印记录自己的学习成长。本文虽不是什么高质量技术文章,但对于自己的知识进行梳理也起到一定的巩固作用。开发版本:Python3.5.2
list列表
list是一种有序的集合,可以随时添加和删除其中的元素,元素可以是任意的数据类型且可以相同。对list的操作有增删改查:
# list列表
L = ['Python','php']
# 增加元素
L.append(2)#末尾追加元素
print(L)#['Python', 'php', 2]
L.insert(1,True)#指定位置插入元素 如果指定位置不存在默认末尾追加
#['Python', True, 'php', 2]
#删除元素
L.remove(2)#remove中的是元素
#['Python', True, 'php']
L.pop(2)#pop中的是下标位置 pop()删除末尾元素
#'Python', True]
#改元素(替换)
L[1] ='Java'#通过下标替换元素
# ['Python', 'Java']
L[0] =['list','tupe',12]
# [['list', 'tupe', 12], 'Java']
#查找元素(通过下标获取元素)
print(L[0])#['list', 'tupe', 12]
print(L[0][1])#tupe
tupe元组
tupe一但初始化就不能修改。因为tupe不能改变所有对tupe的操作只有查操作与list的查操作一样。
用__len__()获取元素长度。
dict字典
使用键-值(key-value)存储,具有极快的查找速度。存放顺序与key顺序无关。
需要牢记的第一条就是dict的key必须是不可变对象。(因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash),要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。)
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
#1. dic通过in判断key是否存在:
dic = {'Python':1,'Java':2,'php':3}
print('net'indic)#False
#2. 通过get方法,如果key不存在,可以返回None,或者自己指定的value:
print(dic.get('net'))#None
print(dic.get('net',34))#34
#删除
print(dic.pop('Java'))#2,返回value值
print(dic)#{'php': 3, 'Python': 1}
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
#创建set需要提供一个list作为输入集合:
s =set(['sdf',2,True])
#添加元素到set通过方法add(key)
s.add('python')
print(s)#{True, 'sdf', 2, 'python'}
#删除元素remove(key)
s.remove(2)
L = [1,2,3]
lis = [1,2,4]
s =set(lis)
print(s)
#两个set可以做数学意义上的交集、并集等操作
s1 =set([1,2,3,4,5])
s2 =set([4,5,6])
print(s1&s2)
print(s1|s2)
网友评论