您的位置:首页 > 编程语言 > Python开发

Python随记(4)格式化 序列

2020-03-29 19:43 1621 查看

格式化

  1. 就是按照统一的规格去输出数据。
  2. format() 接收位置参数和关键字参数
    "{} {}"f.ormat('hello','world') >>hello world
    不带参数默认排序填充。
    ‘{0} {1}’.formant('hello','world')
    带位置参数。
    '{a} {b}'.format(a='hello',b='world')
    带关键字参数。还可以通过字典设置参数
    dir={'a':1,'b':2} print('{a},{b}'.format(**dir)
    可以通过列表索引设置参数
    list=[1,2] print('{0[0]} {0[1]}'.format(list) #'0'是必须的。

    当位置参数和关键字参数综合在一起用,位置参数要在关键字参数前面否则会报错。
    format的数字格式化:
    print("{:.2f}".format(3.1415926))
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
5 {:0>2d} 05 数字补零(填充左边宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:>10d} 右对齐 (默认, 宽度为10)
13 {:<10d} 左对齐 (宽度为10)
13 {:^10d} 中间对齐 (宽度为10)
  1. 格式化操作符:%
符号 描述 辅助命令 含义
%c 格式化字符及其ASCII码 m.n m显示的是最小总宽度,n是小数点后位数
%s 格式化字符串 - 左对齐
%d 格式化整数 + 在正数前面加+号
%u 格式化无符号整型 # 在八进制前显示‘0’,十六进制显示‘0x’
%o 格式化无符号八进制数 0 显示数字前面填充’0‘代替空格
%x 格式化无符号十六进制数 转义字符
%X 格式化无符号十六进制数(大写) ’\ ’ 续行符 \a 发出系统响铃
%f 格式化浮点数字,可指定小数点后的精度 \b 退格符 \n 换行符
%e 用科学计数法格式化浮点数 \t 横向制表符(TAB) \v 纵向制表符
%E 作用同%e,用科学计数法格式化浮点数 \r 回车符 \f换页符
%g %f和%e的简写 \o,\x 八/十六进制 \0 空字符
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

最近刚发现的%r 这个万能格式符,,它会将后面给的参数原样打印出来,带有类型信息。

print('r' % [1,2,3])
print('%r' % '1,2,3')
print('%r' % 1.23)
>>>
[1,2,3]
'1,2,3'
1.23
  1. f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。之前我们习惯用百分号 (%)。f-string 格式话字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
    a='123' f'{a}' >>'123' a='1+2' f'{a}' >>'3'
    这样就不用判断是用%d 还是 %s 了。

序列

  1. 列表,元组,字符串。有很多共同点,都可以索引,可以切片,有很多共同的操作符。所以就统称序列。
  2. 常用BIF:
    list(迭代对象)
    a=list('love') a>>['l','o','v','e']

    tuple() 将迭代对象转换成元组 str() 转成字符串
    len() 返回参数长度
    max()/min() 返回参数中的最大最小值,使用时要保证数据类型的统一
    sum(iterable,start) 返回序列iterable所有元素值的和,start可选参数,表示从哪开始默认是0 sorted(iterable,key=None,reverse=False) 返回一个排完序的列表(与列表内置方法sort()效果一样,sorted()是返回一个新列表sort()是原地排序)
    reversed() 逆向排序效果与reverse()一样。reversed()返回的不是列表是一个迭代器,可以用for查看。 enumerate() 生成二元组(位置,元素)
    enumerate('12')>>(0,'1') (1,'2')

    zip() 返回由各个可迭代参数共同组成的元组。

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 返回一个对象
zipped
<zip object at 0x103abc288>
list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
list(zip(a,c)) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]

a1, a2 = zip(zip(a,b)) # 与 zip 相反,zip() 可理解为解压,返回二维矩阵式
list(a1)
[1, 2, 3]
list(a2)
[4, 5, 6]

  • 点赞
  • 收藏
  • 分享
  • 文章举报
AI路漫漫 发布了25 篇原创文章 · 获赞 0 · 访问量 352 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: