元组

具名元组
from collections import namedtuple
city = namedtuple('city', 'name country population coordinates')
tokyo = city('tokyo', 'Jp', 36.9, (25.7, 125.8))
print(tokyo.population)
print(tokyo[1])

类名为city, 其后带有5个值,分别是各个字段的名字, 可用属性值、相对访问位置。

print(city._fields) # 返回该类所有字段名称的元组

Lat = namedtuple('Lat', 'lat long')
det = ('det', 'in', 21.7 , Lat(28.6, 77.2))
ciyt._make(det)  # 等将于city(*det)

print(city._asdict())  # 以collections.OrderedDict形式返回
切片 多维切片
s[a:b:c]
# s在a和b之间以c为间隔取值
# 四维数组切片  ...用作多维数组切片
x[i, ...] # 等价于x[i, :, :, :]

l  = [0,1,2,3,4,5,6]
l[2:5] = [20,30]
# l = [0,1,20,30,4,5,6]
# 赋值对象为切片 则赋值语句右侧为可迭代对象
# 列表推导
b = [ ['_']*3  for i in range(3)]
>>> [['_','_','_'],['_','_','_'],['_','_','_']]

# 可变序列 增量加法时 变量id不变
# 否则 id改变 相当于 重新赋值
l = [1, 2, 3] # 可变元组
l *= 2
n = (1, 2, 3) # 不可变元组 
n *= 2

list.sort 与 sorted()
sorted(可迭代对象, reverse, key) # 创建新列表排序, 原   列表不变
list.sort(reverse, key) # 就地排序
# reverse 为True  序列降序排序  False 升序排序
# key 一个只有一个参数的函数, 该函数会被用在序列里的每一个元素上,
# 所产生的结果是排序算法依赖的对比关键字 eg. key=len  key=str.lower
fruits = ['grape', 'apple', 'banana']
sorted(fruits)
fruits.sort()

insort(seq, item)
# 将item 插入到序列seq中, 并保持它的有序
数组

只包含数字的列表:array.array
array(‘b’) 创建数组仅能存放一个字节大小的整数,切不可存放该类型以外的数据

from array import array
from random import random
floats = array('d', (random() for i in range(10**7)))
fp = open('floats.bin', 'wb')
floats.tofile(fp) #  将数组存入二进制文件
fp.close()
floats2 = array('d')
# 类型码d 表示双精度浮点数组
fp = open('floats.bin', 'wb')
floats2.fromfile(fp, 10**7) # 从二进制文件中读取浮点数
fp.close()

# 数组排序
a = array.array(a.typecode, sorted(a))
高性能计时器
from time import perf_counter as pc
t0 = pc()
floats /= 3
print(pc()-t0)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值