Python基本数据类型

built-in types

  1. numeric数值类型:int , float , complex
操作结果
x + y
x - y
x * y乘积
x / yx除以y,结果为浮点型
x // y整除1//2 = 0, (-1)//2 = -1, 1//(-2) = -1, (-1)//(-2) = 0,趋向于小的值
x % yx/y的余数
-x取反
+x不变
abs(x)绝对值
int(x)产生整数,只取整数部分int(-8.99)=8;int(8.99)=8 等同math.trunc(x)
float(x)产生浮点数
complex(re, im)产生复数
c.conjugate()取共轭
divmod(x, y)(x // y, x % y)
pow(x, y)x^y
x ** y同上

math.floor(x) :小于x的最大值
math.ceil(x) :大于x的最小值
2. sequences
3. mappings
4. classes
5. instances
6. exceptions.
数据类型分类

可变数据类型不可变数据类型
list, dictionary, set, numpy array, user defined objectsinteger, float, long, complex, string, tuple, frozenset

元组
元组与列表类似,元组Tuple也是个有序序列,但是元组是不可变的
1. 元组使用括号嵌套,各个元素之间使用逗号分开(括号可以没有)
2. 元组中的元素不可更改,但元素可以是可变数据类型
3. 空元组可以用一对括号表示;单元素元组要在元素后面加上逗号

#使用括号嵌套,括号可以没有;单元素元组和空元素元组的表示
empty=()
singleton=9,
print(empty,singleton)
#可以包含列表
list1=[1,2,3]
list2=[4,5,6]
cell=list1,list2,'str'
print(cell,cell[0])
cell[0][0]=9
print(cell)
*运行结果*
() (9,)
([1, 2, 3], [4, 5, 6], 'str') [1, 2, 3]
([9, 2, 3], [4, 5, 6], 'str')

为什么需要元组

  1. 旧式字符串格式化中参数要用元组;
  2. 在字典中当作键值;
  3. 数据库的返回值……

字典dict
1.字典是一种mapping类型,键-值的存储方式(key-value),字典的键必须是不可変对象,因为dict根据键来计算value的存储位置,如果每次计算相同的键得出的结果不同,那么dict内部就完全混乱了,这种通过key计算位置的算法成为哈希算法;字符串和整数适合作为键,而浮点数不适合
2、字典的产生方式有两种,且字典没有顺序

  • { }方式
  • dict()函数方式产生

3、 字典方法:

  • get方法:用索引可以找到一个键对应的值,但是当字典中没有这个键的时候,Python会报错,这时候可以使用字典的 get 方法来处理这种情况,其用法:d.get(key, default = None)

  • pop方法:pop 方法可以用来弹出字典中某个键对应的值,同时也可以指定默认参数:
    d.pop(key, default = None)删除并返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )。

  • update方法:可以通过索引来插入、修改单个键值对,但是如果想对多个键值对进行操作,这种方法就显得比较麻烦,好在有 update 方法:d.update(newd)将字典newd中的内容更新到d中去
  • in方法:in查询字典中是否有该键

  • keys 方法,values 方法和items 方法:
    d.keys()
    返回一个由所有键组成的列表;
    d.values()返回一个由所有值组成的列表;
    d.items() 返回一个由所有键值对元组组成的列表;

#使用{}产生字典
a={}
a['one']='this is number1'
a['two']='this is number2'
print(a,a['one'])
#使用dict()转化来生成字典
inventory = dict(
    [('foozelator', 123),
     ('frombicator', 18), 
     ('spatzleblock', 34), 
     ('snitzelhogen', 23)
    ])
print(inventory)
*运行结果*
{'one': 'this is number1', 'two': 'this is number2'} this is number1
{'foozelator': 123, 'frombicator': 18, 'spatzleblock': 34, 'snitzelhogen': 23}
#get方法
c=inventory.get('foozelator')
d=inventory.get('a',None)
print(c,d)
*运行结果*
123 None
#pop方法
de=inventory.pop('frombicator')
no=inventory.pop('one','not exit')
print(de,no)
*运行结果*
18 not exit
#update方法
inventory_mod={'foozelator':3,'yutree':98}
print(inventory)
*运行结果*
{'foozelator': 123, 'spatzleblock': 34, 'snitzelhogen': 23}
#in方法
[print(inventory.get(item)) for item in  inventory ]
*运行结果*
123
34
23
#keys方法,values方法,items方法
list1=inventory.keys()
list2=inventory.values()
list3=inventory.items()
print(list1,list2,)
print(list3)
*运行结果*
dict_keys(['foozelator', 'spatzleblock', 'snitzelhogen']) dict_values([123, 34, 23])
dict_items([('foozelator', 123), ('spatzleblock', 34), ('snitzelhogen', 23)])

集合set

  1. 生成set的两种方法
    :set()生成空集合,set(list)在set函数内部传入列表可以初始化集合
    :使用{ }可以生成集合,但是{ }不能用来生成空集合
  2. set是无序序列,因为集合是无序的,所以当集合中存在两个同样的元素的时候,Python只会保存其中的一个(唯一性);同时为了确保其中不包含同样的元素,集合中放入的元素只能是不可变的对象(确定性)
  3. set方法
操作或方法含义
a.union(b) 或者 a b两个集合的并,返回包含两个集合所有元素的集合(去除重复)
a.intersection(b) 或者 a & b两个集合的交,返回包含两个集合共有元素的集合
a.difference(b) 或者 a - ba 和 b 的差集,返回只在 a 不在 b 的元素组成的集合
a.symmetric_difference(b) 或者 a ^ ba 和b 的对称差集,返回在 a 或在 b 中,但是不同时在 a 和 b 中的元素组成的集合
b.issubset(a) 或者 b <= a要判断 b 是不是 a 的子集
a.issuperset(b) 或者 a >= b要判断 a 是不是 b 的子集
s.add(a)向s集合添加元素a,如果添加的是已有元素,集合不改变
s.update(seq)向集合添加多个元素
s.remove(ob)从集合s中移除元素ob,如果不存在会报错
t.pop()由于集合没有顺序,不能像列表一样按照位置弹出元素,所以pop 方法删除并返回集合中任意一个元素;如果集合中没有元素会报错
t.discard(a)作用与 remove 一样,但是当元素在集合中不存在的时候不会报错
a.difference_update(b)从a中去除所有属于b的元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值