元组

如何为元组中的每个元素命名,提高程序可读性---Python数据结构与算法相关问题与解决技巧

匿名 (未验证) 提交于 2019-12-02 22:51:30
实际案例:   学生信息系统中,数据为固定格式:(名字,年龄,性别,邮箱) ,通常使用元组来存储 使用优点:  使用元组 最大的优点在于节省空间 ,存储相同的数据,使用元组比使用字典,空间小很多 使用缺点:  访问元组数据时,需要使用索引,(index),访问, 大量索引降低程序的可读性 解决方案 方案一: 定义一系列数值常量或枚举类型 方案二: 使用标准库中 collections.nametuple 替代内置 tuple 方案一: 定义数值常量 使用枚举 #使用枚举,相当于创建了一个名字空间 转载请标明出处: 如何为元组中的每个元素命名,提高程序可读性---Python数据结构与算法相关问题与解决技巧 文章来源: 如何为元组中的每个元素命名,提高程序可读性---Python数据结构与算法相关问题与解决技巧

列表,元组以及range

匿名 (未验证) 提交于 2019-12-02 22:51:30
列表是数据类型之一,它有序,可变,支持索引 作用:存储数据,支持的数据类型很多:字符串,数字,布尔值,列表等 # 定义一个列表 lst = ['alex',123,True,'列表'] 用逗号分隔的是一个元素 #print(id(lst[0])) -- 获取元素的内存地址 lst = ['alex',123,'wusir',456] # 追加 : 在列表的最后一个位置添加一个内容 lst.append('000') print(lst) #['alex',123,'wusir',456,'000'] # 插入 :尽量不要使用(当数据量比较大的时候会影响效率) lst.insert(1,'000') print(lst) #['alex','000',123,'wusir',456] #迭代添加 ("可迭代对象") lst.extend('000') print(lst) #['alex',123,'wusir','0','0','0'] 2.ɾ lst = ['alex',123,'wusir',456] # 弹 默认删除最后一个;有返回值,返回的是被删除的元素;可通过指定索引进 行删除 lst.pop(2) print(lst) #['alex',123,456] # 移除 通过元素名字进行删除 lst.remove('wusir') print(lst) #['alex'

列表 元组 range

匿名 (未验证) 提交于 2019-12-02 22:51:30
容器 有序,可变,支持索引 列表: 存储数据,支持的数据类型很多,字符串,数字,布尔值,列表,集合,元祖,字典 # 定义一个列表 lst = [ '杨紫' , '高圆圆' , '刘亦菲' , '关晓彤' , 1 , 2 , 3 , 4 ] # 用逗号分隔的是一个元素 print ( lst [ 0 ]) print ( id ( lst [ 0 ])) # id获取对象的内存地址 增: # append() lst . append ( "大煎饼" ) #追加(在列表的最后位置添加一个内容) print ( lst ) # insert() lst . insert ( 2 , "wusir" ) #插入 以后尽量不要使用(当数据量比较大的时候会影响效率) print ( lst ) # extend() lst . extend ( "可迭代的内容" ) # 迭代添加 print ( lst ) lst1 = [ 1 , 2 , 3 ] lst2 = [ 4 , 5 , 6 ] lst = lst1 + lst2 # 列表合并 开辟了一块新的空间 删: # pop() # 1.默认删除最后一个 # 2.有返回值返回的是被删除的元素 # 3.通过索引进行删除 lst . pop () # 弹 -- 默认删除最后一个 print ( lst ) # del del lst #

Python每日一记83>>>利用matplotlib.animation画动态图与ln,(加逗号)的思考

匿名 (未验证) 提交于 2019-12-02 22:51:30
今日自律性良好。 上一篇文章利用plt.ion()的设置进行了动态图的绘制,今天学习了下利用animation绘制动态图,确实更强大,但是也较难理解。 函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下:   1、fig 绘制动图的画布名称   2、func自定义动画函数,即下边程序定义的函数update   3、frames动画长度,一次循环包含的帧数(每一帧就是每一个画面),在函数运行时,其值会传递给函数update(n)的形参“n”, 注意这个就是循环的基准参数,多次循环就是多个值的列表即可。   4、init_func自定义开始帧,即传入刚定义的函数init,初始化函数,如设置图标大小,刻度等   5、interval更新频率,以ms计   6、blit选择更新所有点(False),还是仅更新产生变化的点(True),看情况设置,但mac用户请选择False,否则无法显示。 还是昨天的案例,绘制每一层楼的销售情况,多行数据的动画: 正确frame应该是np.range(1,5,1),因为初始化已经画了第一行了。 循环作图会无限的循环下去, 不知道怎么解决。 另外在网上的案例有一点让我很不理解: ln,加了逗号时元组类型,单个元素的元组! 但是不用元组类型就出错?

python的列表元组字典集合比较

匿名 (未验证) 提交于 2019-12-02 22:51:30
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'],7-9j] 1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型 2.aList.append('test'):追加元素到列表中去 3.del aList[1]:删除列表中下标为1的元素 del aList:删除整个列表 4.cmp(list1,list2):比较两个列表的大小 5.len(list):返回列表元素个数 6.sorted(list):使用字典序对列表中元素进行排序 7.reversed(list):倒置列表中的元素位置 8.list.count(obj):返回对象obj在list中出现的次数 9.list.extend(seq):把序列seq的内容添加到list中10.list.insert(index,obj):在索引量为index的地方插入obj对象 11.list.pop(index=-1):删除并返回指定位置的对象,默认是最后一个对象 12.list.remove(obj):从list中删除obj对象 元组 可以包含不同类型的对象,但是是不可变的,不可以在增减元素,用()来定义 eg:aTuple=(123,'abc',4.56,[

python的socket模块

匿名 (未验证) 提交于 2019-12-02 22:51:30
sk.bind(address)   s.bind(address) 将套接字绑定到地址。address地址的格式取决于地址族。在AF_INET下,以元组(host,port)的形式表示地址。 sk.listen(backlog)   开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。 sk.setblocking(bool)   是否阻塞(默认True),如果设置False,那么accept和recv时一旦无数据,则报错。 sk.accept()   接受连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据。address是连接客户端的地址。   接收TCP 客户的连接(阻塞式)等待连接的到来 sk.connect(address)   连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 sk.connect_ex(address)   同上,只不过会有返回值,连接成功时返回 0 ,连接失败时候返回编码,例如:10061 sk.close()   关闭套接字 sk.recv(bufsize[,flag])   接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息

python中*args和**kw

匿名 (未验证) 提交于 2019-12-02 22:11:45
有时看到python函数中的参数有出现*args与**kw,不知道这两个参数具体是什么意思,现在我就来介绍以下函数参数*arg与**kw的具体含义 *args :将实参中按照位置传值,多余的值都给args,以元组的方式呈现 对于初学者来说,有人可能将元组忘记了 元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。 my=(1,2,3,4) 注意:被使用的元组的值不会改变。 **kw :形参中按照关键字传值,多余的值都给kw,以字典*的方式呈现 字典里面的元素是将键与值联系起来 像这样: d = {key1 : value1, key2 : value2 } 注意: (1)键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中另外, (2)字典中的键/值对是没有顺序 现在我们通过例子来学习*arg与**kw的作用:  输出结果: 现在一个可以看出其中的区别与使用了吧

Python基础:十九、touple元组

匿名 (未验证) 提交于 2019-12-02 22:11:45
touple 元组(只读列表,内容不能进行更改) 1、元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组 2、元组的嵌套     1) 元组的元素不能改变 ,     2)但如果元组的元素是一个列表、字典等能改变其元素的数据,则该列表或字典等的元素是可以更改的 touple = ("a",list,1) #则"a"、list、1是不能修改的,但是list内部的元素是可以修改的

python之列表&&元组&&字典

匿名 (未验证) 提交于 2019-12-02 22:11:45
1、列表 1.1、列表举例: c = [1,2,3,4,5,6,7] d = [” 张三”, ” 李四”, ” 王五” ] e = [1,2,3,” 4” ,” 5” ,d] 1.2、使用索引找到列表中的元素 1.3、不含步长的切片 用列表名[起 : 止]表示切片,从列表中切出相应的元素 前闭后开 c[0:2] 切出 [1,2] c[ : ] 切出 [1,2,3,4,5,6,7] 1.4、包含步长的切片 用列表名[起 : 止: 步长] 带步长的切片,步长有方向。 对于c = [1,2,3,4,5,6,7] 切出 [5,4,3,2]用 c[4 : 0 : -1] 切出[5,4,3,2,1]用 c[4 :: -1] 切出 [6,4,2]用 c[-2 :: -2] 从倒数第二个开始一直切到头,步长-2 1.5、修改: 列表名 [ 索引号 ] = 新值 1.6、删除: del 列表名[ 索引号 ] 1.7、插入: 列表名.insert(插入位置索引号,新元素) 2、元组 2.1、使用()定义 一旦定义不能改变,不能按照索引赋值,删除,或者插入。可以按照索引查找。 a=(1,2,3) 3、字典 3.1、 字典 { } 3.2、 字典里放着 {键:值, 键:值, 键:值} n 个键值对 dic={1:”123”,”name”:”zhangsan”,”height” :180} 3.3、查找: