170115
来源:互联网 发布:淘宝千牛客服怎么设置 编辑:程序博客网 时间:2024/06/07 17:35
1625-5 王子昂 总结《2016年1月15日》 【连续第107天总结】
A.python两节
B.列表中可以包含任意数量和任意类型的元素,包括用户自定义类型的对象,甚至可以包含不同类型的元素
这点与C++是完全不同的
列表在声明或者说创建的时候无需给定大小,只需要赋值即可。
当需要新增元素的时候可以通过appen()方法来动态添加,更新的时候直接使用下标,或者说切片操作符[]来直接赋值即可
删除的时候使用del语句,可以删除整个列表,或是指定某个部分,如del a[3]
或使用remove()方法,可以删除指定值,如alist=[1,2] alist.remove(2)
测试后知,remove只会从前往后删除第一个值,而不是把所有值相同的都删除;若列表中不存在值则报错
列表中的元素可以是另一个序列,所以列表是可以多次切片的
例如a[1][1]='1' 。这有些类似多维数组
可以使用'+'连接操作符把两个列表连接成一个,但是它们必须类型相同;实际上是新生成一个内存空间来保存合成列表
而extend()方法则可以把一个列表的元素直接添加入另一个列表中,这样可以节省内存空间,不过代价是原列表将会被破坏
可以对序列类型使用'*'来得到多次重复的内容
例如:a="123",a*2"123123"
列表解析: [i*2 for i in [8,-2,5]] →[16,-4,10]
[i for i inrange(8) if i %2 ==0]→[0,2,4,6]
序列类型函数:
sorted()//排序(字符串元素以ASCII码值之和作为值)
reversed() //逆序输出
enumerate()//返回一个有索引的序列
eg:a=[a,b,c]print enumerate(a)→[(1,a),(2,b),(3,c)]
zip()//返回一个序列,每项元素的值都是参数列表的该项元素的合成;
eg:x=[1,2,3]
y=[4,5,6]
xy=zip(x,y)
print xy→[(1,4),(2,5),(3,6)]
//zip的参数可以只有一个序列,此时返回的序列值为[(1,),(2,),(3,)]
//当zip的多个参数序列长度不同时,舍去较长序列的多余的元素
u=zip(*xy)
print u→[(1,2,3),(4,5,6)]
//*list表示将该list拆开,每项元素单独作为一个元素传递给函数
//一般认为这是一个unzip的过程
sum()//累加
sum(list)等价于reduce(operator.add,list)
//reduce(方法,序列) 将序列的元素依次送入方法参数中
list()和tuple()
接受可迭代对象作为参数,并通过浅拷贝数据来创建一个新的列表或者元组。
一般用于列表和元组的互相转换。比如说将元组转换为列表,它的值就可以更新了
注:因为是浅拷贝数据,所以列表的地址是不同的,但元素地址是一致的
另外,因此数字和字符串都是不可更改类型的,因此当对其修改时,实质上都是重新生成一块内存空间并赋值给引用
所以当原来列表的元素是数字、字符串时,修改元素并不会引起另一个序列的元素改变
但是如果原列表的元素是列表,对子列表的元素进行修改会引起另一个序列的元素改变(因为子列表的地址不变)
另外虽然数据是浅拷贝,但序列是不同的,因此对一个列表执行tuple()和list()以后,它的地址是不同的
也就是说,实质上这两个函数都是新生成一个序列来存放相同元素(的引用)
注意序列的切片操作符实际上是前闭后开的,也就是说a[1:2]只包含了a[1]
元组的不可变特性仅针对它的元素。也就是说,如果元组中包含了一个列表,完全可以修改这个列表的元素,项数。
可以对子列表做任何事,只要不修改“子列表的地址”
另外还可以对元组进行拆分整合,生成一个新的元组
C.明日计划
python一节
- 170115
- 华为OJ训练之0041-170115-合并数据表记录
- 华为OJ训练之0042-170115-整形数组排序
- 米洛个人修炼术:情绪的四种常用处理方式,其实都是有问题的
- Listener监听器
- Ajax.java
- R语言中的负整数索引
- Filter过滤器
- 170115
- Oracle数据库中会话、连接、进程3者之间的关系
- stm32 uart打印
- 问题三十二:怎么用ray tracing画多边形(polygon, triangle)
- 算法竞赛入门经典第三章
- github的基本使用
- (HDU 5773)The All-purpose Zero <最长上升子序列 + 思维题> 多校训练4
- PL/SQL Developer快速连接数据库(不需要再在Oracle数据库安装文件下配置tnsnames.ora文件)
- hadoop&hbase学习03--出现的问题