1.python数据类型
按存储模型分类:
- 标量类型:数值,字符串
- 容器类型:列表,元组,字典
按是否可变分类:
- 可变类型:列表,字典
- 不可变类型:数字,字符串,元组
按访问类型分类:
- 直接访问:数字
- 顺序访问: 字符串,列表,元组
- 映射访问 :字典
2.python-字典
字典是由键值对(key-value)构成的映射数据类型,与java的map相似
-可以通过键的方式查找: "key" in 字典
创建字典:
- 通过{}操作符创建字典
- 通过dict()工厂方法创建字典
- 通过fromkeys()创建具有相同值的字典
>>> adic={'name':'sss','age':18} #通过{}操作符创建字典
>>> adic
{'name': 'sss', 'age': 18}
>>> adic2=dict((['name','bob'],['age',18])) #通过dict()工厂方法创建字典
>>> adic2
{'name': 'bob', 'age': 18}
>>> adic3={}.fromkeys(('bob','alice'),23) #通过fromkeys()创建具有相同值的字典
>>> adic3
{'bob': 23, 'alice': 23}
访问字典:
字典是映射类型,意味着它没有下标,访问字典中的值需要使用相应的键
>>> adic={'name':'bob','age':18}
>>> adic['name']
'bob'
更新字典:
通过键更新字典
-如果字典中有该键,则更新相关值
-如果字典没有该键, 创建该键值对
>>> a={'name':'bob','age':18}
>>> a
{'name': 'bob', 'age': 18}
>>> a['phone']='123156123'
>>> a
{'name': 'bob', 'age': 18, 'phone': '123156123'}
删除字典:
通过del可以删除字典中的元素或整个字典
使用内部方法clear可以清空字典
使用pop()方法可以弹出字典中的元素,也就是出栈操作
>>> a
{'name': 'bob', 'age': 18, 'phone': '123156123'}
>>> del a['phone'] #删除phone
>>> a
{'name': 'bob', 'age': 18}
>>> a
{'name': 'bob', 'age': 18}
>>> a.pop('age') #出栈,最后一个字符被弹出
18
>>> a
{'name': 'bob'}
>>> a
{'name': 'bob', 'age': 18}
>>> a.clear() #清空字典
>>> a
字典内建函数:
len():返回字典中元素的数目
>>> a
{'name': 'bob'}
>>> print(len(a))
1
copy():返回字典的副本,相当于对字典的拷贝
>>> b=a.copy()
>>> b
{'name': 'bob'}
items():将字典转换成列表并返回
>>> a={'name':'sss','age':18}
>>> a
{'name': 'sss', 'age': 18}
>>> b=a.items()
>>> b
dict_items([('name', 'sss'), ('age', 18)])
keys():返回所有键的列表
>>> a
{'name': 'sss', 'age': 18}
>>> a.keys()
dict_keys(['name', 'age']
values():返回字典中所有值的列表
>>> a
{'name': 'sss', 'age': 18}
>>> a.values()
dict_values(['sss', 18])
update(dic2):将两个字典的值合并到一起,将dict2添加到dict1
>>> c
{'phone': '1234654658'}
>>> a
{'name': 'sss', 'age': 18}
>>> a.update(c)
>>> a
{'name': 'sss', 'age': 18, 'phone': '1234654658'}
3.列表
可以将列表当成普通的“数组”,它能保存任意数量类型的python对象
-列表支持下标和切片操作
-切片输出当前下标元素之后的值
-列表是有序,可变的数据类型
-列表中可以包含不同类型的对象
列表的内建函数:
列表方法 | 操作 |
list.apend(obj) | 向列表中添加一个对象obj |
list.count(objt) | 返回obj在列表中出现的次数 |
list.extend(seq) | 向列表中添加一个序列 |
lis.index(obj) | 返回obj的下标 |
list.insert(index.obj) | 在索引处添加obj |
list.reverse() | 翻转列表 |
list.sort() | 排序,安装ascci码排序 |
list.remove(obj) | 删除一个obj |
测试:
list.apend(obj):在末尾添加
['1', '2', 'a', 'sda', '21.1']
>>> lists.append('aa')
>>> lists
['1', '2', 'a', 'sda', '21.1', 'aa']
list.count(objt):统计某字符或字符串个数
>>> lists
['1', '2', 'a', 'sda', '21.1', 'aa']
>>> lists.count('1')
1
lists.extend(obj):添加一个序列或列表
>>> lists.extend("abc") #或lists.extend(['a','b','c'])
>>> lists
['1', '2', 'a', 'sda', '21.1', 'aa', 'a', 'b', 'c']
list.reverse():翻转列表
>>> lists
['1', '2', 'sda', '21.1', 'aa', 'c', 'a', 'a']
>>> lists.reverse()
>>> lists
['a', 'a', 'c', 'aa', '21.1', 'sda', '2', '1']
list.sort():排序,按assci码,默认升序排序,
- reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
>>> lists
['a', 'a', 'c', 'aa', '21.1', 'sda', '2', '1']
>>> lists.sort()
>>> lists
['1', '2', '21.1', 'a', 'a', 'aa', 'c', 'sda']
list.remove(obj):删除第一个发现的字符
>>> lists
['1', '2', '21.1', 'a', 'a', 'aa', 'c', 'sda']
>>> lists.remove('a')
>>> lists
['1', '2', '21.1', 'a', 'aa', 'c', 'sda']
使用in或not in 判断成员关系(使用key值而不是value)
使用append方法向列表中追加元素(在列表的最后添加)
>>> lists
['1', '2', '3']
>>> '1' in lists
True
>>>
4.元组
元组是静态的,一旦创建,则无法修改
与java加static修饰符作用一致
5.集合
数学上,把set称作做由不同的元素组成的集合,集合(set)的成员通常被称为集合元素
-集合对象是一组无重复对象的集合
-集合有两种类型:可变集合set,不可变集合forzenset
-集合支持用in和not in操作符检查成员
-能够用len()检查集合大小
-能够使用for循环迭代集合成员
>>> s=set("hello") #定义hello 有两个l,重复值将被剔除
>>> s
{'h', 'o', 'e', 'l'}
集合类型操作符:
|:取并集
>>> s
{'h', 'o', 'e', 'l'}
>>> s2
{'w', 'd', 'l', 'r', 'o'}
>>> s1|s2
{'w', 'd', 'l', 'e', 'h', 'r', 'o'}
>>>
&:取交集
>>> s
{'h', 'o', 'e', 'l'}
>>> s2
{'w', 'd', 'l', 'r', 'o'}
>>> s1|s2
{'l', 'o'}
>>>
-:差补,将两个集合非重复部分列举出来,假设有s1,s2,s1-s2列举s1中s2没有的值
>>> s
{'h', 'o', 'e', 'l'}
>>> s2
{'w', 'd', 'l', 'r', 'o'}
>>> s2-s1
{'w, 'r','d'}
>>>
集合内建函数:
set.add():添加成员
set.update():批量添加学员
set.remove():剔除成员
s.issubset(t):如果s是t的子集(t有s的全部值),则返回true
>>> a
{'d', 'c', 'a', 'f', 'e', 'b'}
>>> b
{'c', 'a', 'b'}
>>> a.issubset(b)
False
s.issuperset(t):如果s是t的超集(s有t的全部值),则返回true
>>> a
{'d', 'c', 'a', 'f', 'e', 'b'}
>>> b
{'c', 'a', 'b'}
>>> a.issuperset(b)
True
s.union(t):返回一个新集合,该集合是s和t的交集
>>> a
{'d', 'c', 'a', 'f', 'e', 'b'}
>>> b
{'c', 'a', 'b'}
>>> a.union(b)
{'d', 'b', 'c', 'a', 'f', 'e'}
s.difference(t):返回一个新集合,返回s在t中不存在值
>>> a
{'d', 'c', 'a', 'f', 'e', 'b'}
>>> b
{'c', 'a', 'b'}
>>> a.difference(b)
{'d', 'f', 'e'}