数据类型
列表list:
用途:记录多个值(同种属性)
-
定义方式:[]用逗号分隔开多个任意类型的值
list()造出来的是列表,参数是可迭代对像,也就是可以使用for循环的对像
传入字典,出来的列表元素是字典的key
-
常用方法+内置的方法:
优先掌握的方法:
l = ["a","b","c","d'']
1.按索引取值,也可以更改
l[0],l[-1],l[0]="A"
通过索引赋值可以,通过索引增加值会报错,因为增加值的话肯定需要一个不存在的索引而列表中索引不存在就会报错,
2.追加
append在列表末尾增加insert(index,element) 通过索引添加元素
3.删除
del l[0] 无返回值,赋值给变量,会报错
l.remove[元素名] 根据元素值删除,返回值为None,相当于没有返回值
l.pop[index] 一个参数,根据索引删除,默认索引为-1,pop有返回值,返回的是删除的元素
区别,del和remove单纯的删除,pop可以拿到返回值
4.循环
for item in l:
print(item)
5.len
6.in not in
7.切片:索引的扩展
需要掌握的操作:
num = l.count(element) 数元素在列表中的个数,返回这个个数
extend(items)添加多个值,1个参数,可迭代对象,原理 for item in items:l.append(item)
index(object,start,stop)不存在报错
reverse()反转,无参数
sort()排序,sort(reverse = True)
sort 无返回值.
能存多个值
有序
可变
队列:先进先出,平时排队
堆栈:后进先出,上子弹
元组tuple
-
用途:不可变的列表
存储相同数据的列表和元组占用内存比较
列表查看,修改,会附加支持修改的机制
元组只需要查看
元组更省内存
-
定义方式:()小括号,用逗号分隔开多个任意类型的元素
强调:l = [1],type(l)为list
l = (1),type(l)为int
因为小扩号有包含的作用
以后元组只有一个元素时需要增加一个逗号
需要掌握的操作:
index
count
元组与列表的内存存储情况
l = ["a'',"b","c"]
列表的内存地址,放着 索引:值的内存地址的链接
元组的内存地址,放着索引和值的内存地址,元组不可变,索引对应的内存地址是不变的
字典:dict
列表是索引对应值,而字典是key对应值
其中key对value有描述性类型
定义方式:{}用逗号分开多个元素,每个元素都是key:value的形式,其中key是不可变类型,通常是字符串类型,value可以是任意类型
dict
类型转换: 1.传入的数据 x=1,y=2,z=3
2.li = [("name",egon),("age",18),("gender,male")]
3.li =["name","age","gender","height","'weight"]
dic = {}.fromkeys(li,None)
字典
优先掌握的操作:
-
按key取值
dic[key] = value key不存在,则新增
长度
成员运算 in not in以字典的key为准
-
删除
del dic[key]
dic.pop[key]返回值是key对应的是value
dic.popitem()随机删除一个键值对
-
循环
dic.keys()生成了,dic.values()的结果与dic.keys()一一对应
dic.items()
dic.update{dic1} 更新原字典中没有的key
res = dic.setdefault("name","Egon")
原字典存在key,不变更
原字典不存在key,增加键值对
保证字典一点存在一个key
有返回值:key存在时,没有变更,返回的是key对应的原值
key不存在时,返回新值
用法:产生一个字典{“hello“:2,“alex”:2}
s='hello alex alex say hello sb sb'
dic={}
words=s.split()
for word in words:
dic.setdefault(word,s.count(word))
print(dic)
总结:保证字典存在设置的这个key,返回值为这个key对应的值(key存在就是原值,不存在就是自己设定的值)
集合(set):可变类型
一个群体与另一个群体的关系
- 用途:关系运算
- 定义方式:{},在花括号内用逗号分隔开多个元素,元素特点是①集合内的元素必须是不可变类型②集合内元素无序③集合内元素不可重复,去重
定义一个空集合,s = set()
类型转换,set参数类型iterable可迭代
常用的操作和内置方法:
优先掌握的:
关系运算:①合集(并集) | set1|set2
②交集 & set1&set2
③差集 - set 1-set2 set2 -set1
④对称差集 ^ set1^set2
⑤==
⑥父子集:包含与被包含的关系
父集包含子集
需要掌握的
s1 = {1,2,3}
s1.update({4,5,6})
s1.pop()没有参数,随机删除1个
s1.add()加入一个元素
s1.remove()指定删除元素,元素不存在,报错无返回值
s1.discard()指定删除元素,元素不存在不会报错,无返回值
去重:
①只能针对不可变类型
②不能保证原来的顺序
name = ["egon","alex","egon","alex"]
set(name)