Python笔记2-六种标准数据类型3
4、元组(Tuple)
-
不可变,是序列
-
元组用圆括号定义(圆括号可省略),没有元素类型限制
tuple(literable)
-
将一个literable对象转化为元组并返回,如果没有实参,则返回空元组
5、字典(dictionary)
-
字典中的元素是以键值对(key:value)的形式存在的,是一种映射结构
-
字典中的键不能存在可变数据,值没有限制
-
字典不是序列,是可变的
-
字典当作iterable操作时,只有键参与迭代
dict(**kwargs)/dict(mapping)/dict(iterable)
-
用于创建一个字典并返回
-
zip(*iterables)映射
-
**kwargs表示可以接受无穷大个关键字参数,将它们打包成一个字典
-
**kwargs必须放在所有形参的后面
print(dict())#{}
print(dict(two=2, eleven=11,money='钱'))#{'two': 2, 'eleven': 11, 'money': '钱'}
#zip(iterables)
iter1 = '🐱🐕🐖🐂'
iter2 = ['猫','狗','猪','牛']
res = zip(iter1, iter2) #返回迭代器
print(list(res))#[('🐱', '猫'), ('🐕', '狗'), ('🐖', '猪'), ('🐂', '牛')]
-
以iterable的每个元素作为键,value作为所有值,创建一个字典,value不指定时,默认为none
字典的方法
dict.keys()
-
返回字典所有的键
dict.values()
返回字典所有的值
dict.items()
返回字典所有的键和值
返回字典的视图对象
1.可迭代性
2.动态性:当增删改字典中的键值后,其结果也会自动发生改变
# 返回字典的视图对象,具有可迭代性
dic = {'🐱' : '猫','🐕' : '狗', '🐖':'猪', '🐂':'牛'}
view_keys = dic.keys()
view_values = dic.values()
view_items = dic.items()
print(view_keys)# dict_keys(['🐱', '🐕', '🐖', '🐂'])
print(view_values)# dict_values(['猫', '狗', '猪', '牛'])
print(view_items)# dict_items([('🐱', '猫'), ('🐕', '狗'), ('🐖', '猪'), ('🐂', '牛')])
dict.get(key,default=None)
-
key:键
-
default:如果指定的键不存在时,返回该值,默认为None
-
功能:返回指定的键key对应的值,如果key不在字典中,则返回default
dict.update([other])
-
使用来自other更新字典,没有返回值
-
可以像dict()那样传参
dict.pop(key[,default])
-
key:键
-
default:指定当键不存在时应该返回的值
-
移除指定的键所对应的键值对,并返回该键对应的值,如果该键不在字典中,则返回default指定的值
-
如果 default未指定值且指定的键不存在于字典中,则报错。
dict.popitem()
-
从字典中移除最后一个键值对,并返回它们构成的元组(键,值)
dict.setdefault(key, default=None)
-
如果字典存在指定的键,则返回它的值
-
如果不存在,返回default指定的值,并且新增该键值对
-
和dict.get()功能相似
dic = {'🐱' : '猫','🐕' : '狗', '🐖':'猪', '🐂':'牛'}
print(dic.get('🐱'))#猫
print(dic.setdefault('🐱'))#猫
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'}
print(dic.get('🐇'))#None
print(dic.setdefault('🐇'))#None
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛', '🐇': None}
dict.copy()
-
返回原字典的浅拷贝
dic.clear()
-
移除字典中的所有元素,无返回值
new_d = dic.copy()
print(new_d)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'}
new_d.clear()
print(dic)#{'🐱': '猫', '🐕': '狗', '🐖': '猪', '🐂': '牛'}
print(new_d)#{}
6.集合(Set)
-
可变,不是序列
-
集合也用花括号定义,但其中的元素不是键值对
-
集合中不能存在可变的数据
-
集合是无序的
-
集合的元素如果重复,会自动去重
-
创建空集合必须用set(),因为{}是用来创建空字典的
-
可以用于判断父子集关系
set([iterable])
-
将一个iterable对象转化为集合 并返回,如果没有实参,则返回 空集合
print(set()) #set() print(set('welcome')) #{'m', 'c', 'w', 'l', 'e', 'o'} print(set([4, 5, 6])) #{4, 5, 6}
集合方法
set.update(*iterables)
-
更新集合
set.add(elem)
set.remove(elem)
-
从集合中移除元素elem,若不存在,则报错
set.discard(elem)
-
从集合中移除元素elem,如果不存在,无任何操作
set.pop()、set.copy()、set.clear()
总结
除了数字,其他标准类型均为可迭代对象,字符串、列表、元组是序列,列表、字典、集合可变。