python学习6—数据类型之集合与字符串格式化

1. 使用id()可以查看一个变量的内存地址:

name = 'alex'

id(name)

2. 进制转换

十进制转换为二进制等:

a = 10  #声明数字,默认十进制
b = bin(a) #二进制
b = oct(a) #八进制
b = hex(a) #十六进制

二进制等转换为十进制:

a = ''
print(int(a,base=2))
print(int(a,base=8))
print(int(a,base=16))

3. 数据类型分类

可变不可变:

可变:列表,字典

不可变:字符串,数字,元组

访问顺序:

直接访问:数字

顺序访问:字符串,列表,元组

映射访问:字典

存放元素个数

容器类型:列表,元组,字典

原子类型:数字,字符串

集合(set)

1. 定义方式:

# define set
s = {1,2,3,'alex'}
s = set('alexx')

  set()里面的元素必须是可迭代的数据类型,内部通过for循环建立集合

不可变集合定义:

seta = frozenset([1,2,3,4,5])

2. 集合特性:

a. 不同元素

b. 无序排列

c. 集合元素只能使用不可变的数据类型

d. 集合可迭代,即可以使用for循环遍历

3. 集合可以进行简单的去重操作,但是原本元素的排列顺序不可恢复

集合(set)灰魔法

1. 增加集合元素add()

2. 清空集合clear()

3. 浅拷贝copy()

4. 随机删除一个元素pop(),due to 集合是无序的

5. 指定删除某元素remove(x),若不存在此元素则报错

6. 指定删除某元素discard(x),若不存在此元素则忽略

7. 求集合的交集:seta.intersection(setb)或者seta & setb

seta.intersection(setb)
seta.intersection_update(setb)  #更新seta,将seta赋值为交集
print(seta & setb)

8. 求集合的并集:seta.union(setb)或者seta | setb

seta.union(setb)
seta.update(setb)  #更新seta,将seta赋值为并集,相当于其他集合运算的union_updata
seta | setb

  注:update()的参数只要是可迭代的即可,元组、列表、集合均可

9. 求集合的差集:seta.difference(setb)或者seta - setb

seta.difference(setb)
seta.difference_update(setb)  #更新seta,将seta赋值为差集
seta - setb

10. 交叉补集:集合的交集在集合的并集中的补集,即并集-交集,或者seta ^ setb

seta = {1,2,3,'alex'}
setb = {1,2,3,4}
print(seta.symmetric_difference(setb))
seta.symmetric_difference_update(setb)  #更新seta,将seta赋值为交叉补集

11. 判断是否存在交集seta.isdisjoint(setb),返回布尔值

12. 判断是否是子集seta.issubset(setb),返回布尔值,相当于seta <= setb

13. 判断是否是父集seta.issuperset(setb),返回布尔值,相当于seta >= setb

字符串格式化

1. 字符串拼接

msg = 'i am %s, and my hobby is %s' % ('lovin91er','coding')
print(msg)

  注:%s是万能的,可以接收任何数据类型:字符串、数字、列表、元组等等,但是最好使用专门的表达方式。

  %.4s,截取字符串前4个字符

  %d只能接收数字

2. 打印浮点数

  %f,默认保留6位小数

  %.2f,保留2位小数,四舍五入

 p = 'percent %.2f' % 99.976234

3. 打印%符号

  使用%%

 p = 'percent %.2f %%' % 99.976234

4. 使用键值对赋值

msg = 'i am %(name)s, and my hobby is %(hobby)s' % {'name':'lovin91er','hobby':'coding'}
print(msg)

5. 字符串格式化的%方式说明:

%[(name)][flags][width].[precision]typecode
  • (name)      可选,用于选择指定的key
  • flags          可选,可供选择的值有:
    • +       右对齐;正数前加正好,负数前加负号;
    • -        左对齐;正数前无符号,负数前加负号;
    • 空格    右对齐;正数前加空格,负数前加负号;
    • 0        右对齐;正数前无符号,负数前加负号;用0填充空白处
  • width         可选,占有宽度
  • .precision   可选,小数点后保留的位数
  • typecode    必选
    • s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
    • r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
    • c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
    • o,将整数转换成 八  进制表示,并将其格式化到指定位置
    • x,将整数转换成十六进制表示,并将其格式化到指定位置
    • d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
    • e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
    • E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
    • f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
    • F,同上
    • g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
    • G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
    • %,当字符串中存在格式化标志时,需要用 %%表示一个百分号

6. format字符串格式化

[[fill]align][sign][#][0][width][,][.precision][:type]

    • fill           【可选】空白处填充的字符
    • align        【可选】对齐方式(需配合width使用)
      • <,内容左对齐
      • >,内容右对齐(默认)
      • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
      • ^,内容居中
    • sign         【可选】有无符号数字
      • +,正号加正,负号加负;
      •  -,正号不变,负号加负;
      • 空格 ,正号空格,负号加负;
    • #            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
    • ,            【可选】为数字添加分隔符,如:1,000,000
    • width       【可选】格式化位所占宽度
    • .precision 【可选】小数位保留精度
    • type         【可选】格式化类型
      • 传入” 字符串类型 “的参数

        • s,格式化字符串类型数据
        • 空白,未指定类型,则默认是None,同s
      • 传入“ 整数类型 ”的参数
        • b,将10进制整数自动转换成2进制表示然后格式化
        • c,将10进制整数自动转换为其对应的unicode字符
        • d,十进制整数
        • o,将10进制整数自动转换成8进制表示然后格式化;
        • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
        • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
      • 传入“ 浮点型或小数类型 ”的参数
        • e, 转换为科学计数法(小写e)表示,然后格式化;
        • E, 转换为科学计数法(大写E)表示,然后格式化;
        • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
        • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
        • g, 自动在e和f中切换
        • G, 自动在E和F中切换
        • %,显示百分比(默认显示小数点后6位)

注:如果不是传入的字典,则传入的是format后面元素组成的一个元组,前面通过大括号根据元组的索引取具体元素

*[]或者**{},即一个星号加列表,两个星号加字典,均可以直接作为format的参数,如果不加星号,则需世界写入元素,若为字典,则用等号连接键值对。

tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

python学习6—数据类型之集合与字符串格式化的更多相关文章

  1. 【笔记】Python基础二:数据类型之集合,字符串格式化,函数

    一,新类型:集合 集合出现之前 python_l = ['lcg','szw','zjw'] linux_l = ['lcg','szw','sb'] #循环方法求交集 python_and_linu ...

  2. Python学习(五)—— 集合和字符格式化

    数据类型和变量的总结 字符串 数字 列表 元组 字典 分类 1.可变不可变: 可变(即修改变量值以后id不改变):列表.字典 不可变(即修改变量值以后id改变):字符串.数字.元组 2.访问顺序: 直 ...

  3. python学习(二十四) 字符串格式化

    1: Test 1 a = 'city' b = 'country' print(" aaa %s bbb %s " % (a, b)) result: aaa city bbb ...

  4. python学习博客地址集合。。。

    python学习博客地址集合...   老师讲课博客目录 http://www.bootcdn.cn/bootstrap/  bootstrap cdn在线地址 http://www.cnblogs. ...

  5. 《转》python学习(10)-集合

    转自 http://www.cnblogs.com/BeginMan/p/3160565.html 一.目录 1.集合概述 2.关于集合的操作符.关系符号 3.集合的一系列操作(添加.更新.访问.删除 ...

  6. Python学习 之 数据类型(邹琪鲜 milo)

    1.Python中的数据类型:数字.字符串.列表.元组.字典 2.数字类型包括整型.长整型.浮点型.复数型 type(number):获取number的数据类型 整型(int):范围:-2,147,4 ...

  7. 快速理解Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容的区别

    <Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容有何不同?>老猿介绍了二者的区别,为了快速理解,老猿在此使用另外一种方式补充说明一下: 1.使用%r是调用objec ...

  8. Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容有何不同?

    Python中使用百分号占位符的字符串格式化方法中%s和%r表示需要显示的数据对应变量x会以str(x)还是repr(x)输出内容展示. 关于str和repr的关系请见: <Python中rep ...

  9. python学习3—数据类型之整型、字符串和布尔值

    python学习3-数据类型之整型.字符串和布尔值 数据类型 python3支持的数据类型共有6种: 1 Number 2 String 3 List 4 Tuple 5 Set 6 Dictiona ...

随机推荐

  1. Android_开发片段(Part 2)

    1.List和Map知识: 1)如何定义 List<Map<String,Object>> list=new ArrayList<Map<String,Object ...

  2. JAVA中 成员变量和和实例变量区别

    java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. publi ...

  3. pycharm中evaluate expression的用法

    pycharm中evaluate expression的用法 首先要用debug调试模式运行程序,在代码编辑处右键debug,或着选择右上角的小虫子图标点击. 然后保证整个程序运行的时候可以中断,然后 ...

  4. PHP简单读取XML

    DOM document object model,文档对象模型,就是树形结构 节点的分类 元素节点 属性节点 值节点 注释节点 根节点(document才是根节点) 生成XML文档 xml的根节点为 ...

  5. Git 学习第三天(二)

    默认情况下, Git合并是采用"fast forward"模式,但这种模式下,如果删除分支,会丢掉分支信息 禁用 fast forward 模式: git merge --no-f ...

  6. 剑指offer——41数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  7. 列表分成N等份

    将一个长列表分为N个短列表 def Equal_division_list(eq_list, n): ''' :param seq:传入的列表 :param n:划分的份数,几等分 :return:返 ...

  8. BOM 3.1 location对象 | history对象 | navigator对象 | 定时器 | 三大系列

    JavaScript分三个部分: 1. ECMAScript标准---基本语法 2. DOM--->Document Object Model 文档对象模型,操作页面元素的 3. BOM---& ...

  9. 数据整理B

  10. SpringMVC前后端参数交互

    Controller中使用JSON方式有多种 关键在于ajax请求是将数据以什么形式传递到后台 HTTP请求中: 如果是get请求,那么表单参数以name=value&name1=value1 ...