整理python笔记001(列表(深浅copy),元祖,字典,集合)
ASCII的255个字符,最长不过是11111111,那么全都是八位,不足的用0补齐。每个0或1都占1bit(比特),8bit = 1 bytes字节,是最小的存储单位,写作1B 然后,1KB = 1024B 1MB = 1024KB...
英文程序员就圆满了。
GB2312是中国制定的中文的编码Unicode把所有语言的编码都统一在了一起。ASCII编码是一个字节,而Unicode通常是两个字节;字母A用ASCII编码是十进制的65,二进制的01000001;字符0用ASCII编码是十进制的48,二进制的00110000;汉字“中”已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。你可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:字符 ASCII Unicode UTF-8 A 01000001 00000000 01000001 01000001 中 x 01001110 00101101 11100100 10111000 10101101 从上面的表格还可以发现,UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。文件存取编码转换图常用编码介绍一览表 编码 制定时间 作用 所占字节数 ASCII 1967年 表示英语及西欧语言 8bit/1bytes GB2312 1980年 国家简体中文字符集,兼容ASCII 2bytes Unicode 1991年 国际标准组织统一标准字符集 2bytes GBK 1995年 GB2312的扩展字符集,支持繁体字,兼容GB2312 2bytes UTF-8 1992年 不定长编码 1-3bytes
View Code
猜年龄的游戏,猜三次,超过三次则退出。点:循环次数的控制,分支控制,退出循环
age = 56 for i in range(3):inputage = int(input("请输入年龄:") )if inputage == age :print('you got it')breakif inputage > age :print('think samller')if inputage <age :print("think bigger") else :print("you have tied too many times")
View Code
python的列表(就是js中的数组,我老是忘记)和深浅copy
import copya = [1,2,3,[4,5]] b = a print('a的内存地址:',id(a)) print('b的内存地址:',id(b)) a[3][1] = 10 b[3][0] = 200 print('a的值:%s'%a) print('b的值:%s'%b)#深copy c = [1,2,3,[4,5]] d = copy.deepcopy(c) e = c[:]#切片的方式生成 print('c的内存地址:',id(c)) print('d的内存地址:',id(d)) print('e的内存地址:',id(e)) c[3][1] = 10 d[3][0] = 200 print('c的值:%s'%c) print('d的值:%s'%d) #深copy是把c的值复制了之后,还同时指向了新的内存地址,所以两个变量的改变都是独立的,互不影响的
View Code
与js中数组不一样的是, python的列表下标可以是负数,-1即表示取倒数第一个
各种操作
1 # 切片操作(通过下标取一个或者多个的值,可以看做是字符串截取的加强版) 2 3 names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 4 print('取下标1至下标4之间的数字,包括1,不包括4:',names[1:4]) #取下标1至下标4之间的数字,包括1,不包括4 5 print('取下标1至-1的值,不包括-1:',names[1:-1]) #取下标1至-1的值,不包括-1 6 print('从头开始取:',names[0:3]) 7 print('从头开始取,0可以忽略,跟上句效果一样:',names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样 8 print('#如果想取最后一个,必须不能写-1,只能这么写:',names[3:]) 9 print('这样-1就不会被包含了:',names[3:-1]) # 10 print('后面的2是代表,每隔一个元素,就取一个:',names[0::2]) # 11 print('后面的2是代表,每隔一个元素,就取一个,前面的0可以省略',names[::2]) #和上句效果一样 12 13 #append 追加 14 print('追加之前最后一个值:',names[-1]) 15 names.append('simon') 16 print('追加之后最后一个值:',names[-1]);#最后一个值变成了追加的值 17 18 #插入 insert 追加是在默认加到最后面,insert是有序的加入 19 print('before insert 【2】',names[2]) 20 names.insert(2,'占领原来下标为2的地盘') 21 print('after insert 【2】',names[2]) 22 23 #修改 24 print('before update 【2】',names[2]) 25 names[2] = '更新一下就好了' 26 print('after update 【2】',names[2]) 27 28 #删除 29 del names[2] #根据下标删除值 30 print(names) 31 names.remove('Amy') #删除指定元素,不同于js的删除,python的删除会连元素值和位置都删掉 32 names.pop() #删除最后一个元素 33 34 #两个列表合并 35 b = [1,2,3,'Alex'] 36 names.extend(b) 37 print(names) #把b中的元素都加入到names中,并且,并不会去重。 38 39 40 #统计 41 print(names.count('Alex')) #得到个2 42 43 #排序和翻转 44 names2 = ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3] 45 #执行 print(names2.sort()) 会报错,因为3.0+的python不能把str和int一起排序 46 names3 = ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', '1', '2', '3'] 47 names3.sort() #排序 48 print(names3) 49 names3.reverse()#翻转 50 print(names3) 51 52 #获取下标 53 simon = ['simon','lily','penny','simon'] 54 print(simon.index('simon'))#只返回找到的第一个下标
View Code
python的元祖
1 #定义了之后不能单独修改或者增添元素,但可以整个再重新赋值,便不能再修改,又叫只读列表 2 #所以python的切片取值同样可以用于元祖 3 #这里是个随便的例子 4 n1 = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 5 print(n1[1:4]) #取下标1至下标4之间的数字,包括1,不包括4 6 n2 = ("Alex","Tenglan","Eric","Rain","Tom","Amy") 7 print(n2[1:4])
View Code
python的字典
key-value的形式,类似json对象,json对象怎么玩,这就可以怎么玩
info = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya", } #直接获取所有的keys,values print('keys:',info.keys()) print('values:',info.values())#attention 通过keys找的时候,最好使用,因为直接获取的方式,在找不到的时候会报错 print(info.get('stu')) print(info('stu'))#这个会报错#遍历 for simon in enumerate(info):#enumerate的自动加序号功能,有时候还是有用的,注意下print(simon)for i,t in info.items():#会先把dict转成list,数据里大时莫用print(i,t)#字典玩的比较6的话,就要做好三级菜单的作业了
View Code
python的集合
感觉不是很常用,copy下大王的代码以备不时之需
s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) #基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 #使用remove()可以删除一项: t.remove('H') len(s) set 的长度 x in s #测试 x 是否是 s 的成员 x not in s #测试 x 是否不是 s 的成员 s.issubset(t) s <= t #测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t #测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t #返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t #返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t #返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t #返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() #返回 set “s”的一个浅复制
View Code
三级菜单
# -*- coding: utf-8 -*- menu = {'北京':{'海淀':{'五道口':{'soho':{},'网易':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{},'youku':{},},'上地':{'百度':{},},},'昌平':{'沙河':{'老男孩':{},'北航':{},},'天通苑':{},'回龙观':{},},'朝阳':{},'东城':{},},'上海':{'闵行':{"人民广场":{'炸鸡店':{}}},'闸北':{'火车战':{'携程':{}}},'浦东':{},},'山东':{}, } # 连续回上级的时候,要连续读取上级的上级的上级。我这里采用的是记录每次输入的目录名,返回的时候遍历出对应的目录 cur = menu # 记录当前节点下可选的目录 his = [] # 记录存在的输入历史 while 1:for list in cur: # 遍历打印可选目录print(list)choose = input('输入exit退出程序,输入back返回上一层,请输入:').strip()if choose in cur: # 输入的内容存在的时候记录下,并更新当前目录 his.append(choose)cur = cur[choose]elif choose == 'back': # 输入back的时候,去掉记录的最后一笔记录,同时更新当前可选目录if his:his.pop()temp = menu # his记录的是当前输入存在的总历史,遍历以读取当前目录for i in his:temp = temp[i]cur = tempelif choose == 'exit':exit() # 输入exit的时候,退出程序
View Code
参考大王的博客整理:http://www.cnblogs.com/alex3714/articles/5717620.html
转载于:https://www.cnblogs.com/Simonsun002/p/8511966.html
整理python笔记001(列表(深浅copy),元祖,字典,集合)相关推荐
- python 列表 元祖 字典 集合_python基础知识之列表、元祖、字典、集合、字符串。...
1.可变类型之列表 列表用 [ ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除等 ```python names='zhangyang guyun xiangpeng xulia ...
- python列表元祖字典集合运算_Python基础5:列表 元祖 字典 集合 Json
[ 列表] 列表(list)是Python以及其他语言中最常用到的数据结构之一.Python使用使用中括号 [ ] 来解析列表. 列表是可变的(mutable)--即:可以改变列表的内容. 相关操作: ...
- python 列表 元祖 字典 集合_python中列表、元祖、字典和集合
list 允许重复的集合,是有序的:即元素可以是一样的,也可以修改元素: tuple 允许重复的集合,是有序的:但子元素是不可以修改的 dict 允许重复的集合,是无序的:元素是可以修改的 set ...
- python 常用字符串 列表元祖字典都 自带的函数方法
上节内容回顾和补充编程语言高级低级Python种类JavaPythoncPython *****pypy字节码 和 机器码Python程序:1. 终端:C:\python35\python.exe D ...
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...
- python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...
python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...
- python中元祖 字典 列表的区别_Python中元祖,列表,字典的区别
原博文 2016-08-16 15:25 − Python中有3种內建的数据结构:列表.元祖和字典: 1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的 ...
- 元祖字典 java_元祖和字典
元祖的定义 Tuple 元祖与列表类似,不同之处在于元祖中 元素不能修改 元祖表示多个元素的序列 元祖在python中,有特定的应用场景 元祖用于存储 一串信息,数据之间用逗号分隔 元祖用 ( ) 定 ...
- Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合
笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...
- 初学者python笔记(列表的食用方法)
本篇是关于可迭代对象中的列表一些相关使用方法的记录. 可迭代对象简单描述:可以被for循环执行的对象(字符串,列表,元组,字典-) input()方法接收的其实只是字符串 a = input(&quo ...
最新文章
- Forest Program dfs+tanjar仙人掌
- IPVS: Can't initialize ipvs: Protocol not available解决方法
- Pandas选择一列或者多列数据
- 第十五届智能车竞赛不公平竞争情况反映以及审议结果
- Codeforces 1254C/1255F Point Ordering (交互题)
- n 个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为 O(N)
- QT的QGLWidget类的使用
- POJ2481-Cows【树状数组】
- 3617. 子矩形计数
- CSS中position的4种定位详解
- 机器学习中的Numpy库基础——向量、矩阵和数组
- [Linux]文件的atime ctime mtime
- linux 后台运行_Linux系统后台运行应用三板斧
- [Java] 蓝桥杯ADV-171 算法提高 身份证号码升级
- 题解 P2163 SHOI2007 园丁的烦恼
- HTML 标签的 enctype 属性
- 18个国外优质图片素材
- 用树莓派3B+实现智能语音识别
- Centos7 虚拟机迁移及扩容
- Android仿微信地图定位和位置选择(上)
热门文章
- c语言元素累积的计算,C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。...
- redis内核单元测试框架
- 执行cmd并获得结果_用JAVA执行CMD命令备份PG数据库,解决需要口令的问题
- qwidget设置背景颜色_Python+PyQt编程示例:设置窗口背景色及分割条颜色
- 【渝粤教育】国家开放大学2018年春季 0299-21T中国古代文学(1) 参考试题
- 【渝粤教育】国家开放大学2018年春季 0092-22T民法 参考试题
- 正则校验日期,不考虑闰年和闰月
- TortoiseSVN 使用详细步骤(三):安装
- 字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码
- nodejs中Async详解之一:流程控制