我的python学习之路-10
2018-03-07 23:20
393 查看
2018.03.07*******************************Day10***********************************
author:wills
今天了解了列表的相关知识,以及列表的相应操作,下面从代码里面看列表的用法。
append函数表示:追加;insert函数表示:插入。但是insert函数可以多带参数,表示插入位置。以上4段代码分别表示:1,在list最后添加一个元素8;2,在list第一个元素前面插入30;3,l列表的长度不够10,那么此时表示在l列表最后插入一个元素12;4,第一个参数是-1,表示插入位置从右往左边数,即在最后一个元素前面插入11。输出结果为
除了这些简单操作以外,字符串的切片操作,列表也是支持的,并且用法和字符串是一样的。下面说一下列表的非一般操作。
比如在这个代码中使用了enumerate(函数),它的作用是可以在for循环遍历中取得两个参数,第一个表示列表中元素的下标,第二个表示元素本身,所以这个用法在很多时候是很有用的。
列表生成式 与列表生成器
列表生成式,生成一个列表list,并且列表中的每一个元素都已经存在,需要调用时可以直接使用。优点,元素已经存在,调用十分迅速;缺点,因为所有的元素都已经存在,比较占内存空间
列表生成器,生成一个列表容器的对象,列表中的元素尚未实际产生,在调用生成器对象的时候在产生相应元素。优点,因为生成的是一个列表容器的对象,因此内存空间占用很少;缺点,列表中元素尚未实际产生,调用时再由列表生成器对象产生,耗费的时间较多。
这个程序中定义了三个函数,第一个generate()函数,利用了列表的特性,用来生成一个7位的号码,前6个表示红球,是1-33不重复的号码,最后一个是1-16的蓝色球。display函数将个位数补上了0,使每一个数字看着都是2位数,并且在最后一位前面加了|,表示最后一位是蓝色球。最后一个buy_lottery()函数表示你要买几注彩票。下面是运行结果
author:wills
今天了解了列表的相关知识,以及列表的相应操作,下面从代码里面看列表的用法。
l= [1,2,3,4,5,6,7] l.append(8) l.insert(0,30) l.insert(10,12) l.insert(-1,11) print(l)
append函数表示:追加;insert函数表示:插入。但是insert函数可以多带参数,表示插入位置。以上4段代码分别表示:1,在list最后添加一个元素8;2,在list第一个元素前面插入30;3,l列表的长度不够10,那么此时表示在l列表最后插入一个元素12;4,第一个参数是-1,表示插入位置从右往左边数,即在最后一个元素前面插入11。输出结果为
[30, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12]
除了这些简单操作以外,字符串的切片操作,列表也是支持的,并且用法和字符串是一样的。下面说一下列表的非一般操作。
ls = [12,23,34,45,56] for i,val in enumerate(ls): print('第%d个元素是%d' % (i,val))
比如在这个代码中使用了enumerate(函数),它的作用是可以在for循环遍历中取得两个参数,第一个表示列表中元素的下标,第二个表示元素本身,所以这个用法在很多时候是很有用的。
列表生成式 与列表生成器
# 列表生成式 list = [x**2 for x in range(1,10)]
列表生成式,生成一个列表list,并且列表中的每一个元素都已经存在,需要调用时可以直接使用。优点,元素已经存在,调用十分迅速;缺点,因为所有的元素都已经存在,比较占内存空间
f1 = (x ** 2 for x in range(1,10))
列表生成器,生成一个列表容器的对象,列表中的元素尚未实际产生,在调用生成器对象的时候在产生相应元素。优点,因为生成的是一个列表容器的对象,因此内存空间占用很少;缺点,列表中元素尚未实际产生,调用时再由列表生成器对象产生,耗费的时间较多。
从以上可以看出,在编程上,时间和空间的矛盾几乎是不可调和的。比如我们内存上的栈,栈很大:优点是单次放入的数据多,缺点是运行的速度慢;反之,栈很小,那么运行速度一定快,但是单次处理的数据量就少了。
今天写了一个很有意思的程序就是双色球,模拟投注双色球,代码如下from random import randint def generate(): red_bal = [x for x in range(1,34)] lottery = [0] * 6 for n in range(6): index = randint(0,len(red_bal)-1) lottery = red_bal[index] del red_bal[index] blue = randint(1,16) lottery.sort() lottery.append(blue) return lottery def display(list): for i,val in enumerate(list): if i == len(list) - 1: print(end='| ') print('%02d' % val,end=' ') print() def buy_lottery(n): for _ in range(n): display(generate()) n = int(input('你买几注:')) buy_lottery(n)
这个程序中定义了三个函数,第一个generate()函数,利用了列表的特性,用来生成一个7位的号码,前6个表示红球,是1-33不重复的号码,最后一个是1-16的蓝色球。display函数将个位数补上了0,使每一个数字看着都是2位数,并且在最后一位前面加了|,表示最后一位是蓝色球。最后一个buy_lottery()函数表示你要买几注彩票。下面是运行结果
相关文章推荐
- 王亟亟的Python学习之路(10)-匿名函数
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- 王亟亟的Python学习之路(10)-匿名函数
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- Python学习之路10——数字
- python学习之路-10 网络编程之进阶
- python学习笔记10(用户交互程序)
- Python学习之路——语句和语法
- Python学习之路---Python模块
- 我的python学习之路-15
- python 学习记录(10)-字符串与正则表达式
- python学习之路二(字符串,字典,序列和元组)
- 教为学:Python学习之路(四):字符串
- 外挂学习之路(10)--- 穿透发包线程寻找call的通杀方法
- Python学习之路——初显身手
- 我的python学习之路----转换位串到utf-8字符串
- Python学习之路二开发工具eclipse(Eclipse3.X)插件的详细配置
- Python学习笔记(10)-生成器generator和迭代器Iterator
- python学习之路-面向对象的编程
- python学习之路(json & pickle 模块 ---序列化,反序列化)