Python【第二章】:Python的数据类型
基本数据类型
一、整型
如: 18、73、84
二、长整型
如:2147483649、9223372036854775807
三、浮点型
如:3.14、2.88
四、字符串
如:'wupeiqi'、'alex'、'lzl'
1、字符串常用功能:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#!/usr/bin/env python# -*- coding:utf-8 -*-#-Author-Lian#str功能操作name = "my name is lzl"print(name.capitalize()) #首字母大写#My name is lzlprint(name.count("l")) #统计字符串出现某个字符的个数#2print(name.center(30,"-")) #打印30个字符,不够的-补齐#--------my name is lzl--------print(name.ljust(30,"-")) #打印30个字符,不够的-补齐,字符串在左边#my name is lzl----------------print(name.endswith("lzl")) #判断字符串是否以lzl结尾#Trueprint(name[name.find("na"):]) #find寻找na所在的索引下标 字符串也可以切片#name is lzlprint("5.3".isdigit()) #判断字符是否为整数#Falseprint("a_1A".isidentifier()) #判断是不是一个合法的标识符(变量名)#Trueprint("+".join(["1","2","3"])) #把join后的内容加入到前面字符串中,以+为分割符#1+2+3print("\nlzl".strip()) #去换行符#lzlprint("1+2+3+4".split("+")) #以+为分隔符生成新的列表,默认不写为空格#['1', '2', '3', '4']name = "my name is {name} and i an {year} old"print(name.format(name="lzl",year=20)#my name is lzl and i an 20 oldprint(name.format_map({"name":"lzl","year":20})) #很少用#my name is lzl and i an 20 oldp = str.maketrans("abcdefli","12345678") #转换 一一对应print("lianzhilei".translate(p))#781nzh8758 |
五、列表
如:[11,22,33,44,55]、['wupeiqi', 'alex','lzl']
1、创建列表:
|
1
2
3
4
5
6
7
|
#两种创建方式name_list = ['alex', 'seven', 'eric']print(name_list)# ['alex', 'seven', 'eric']name_list = list(['alex', 'seven', 'eric'])print(name_list)# ['alex', 'seven', 'eric'] |
2、列表类常用功能:
① 切片
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]print(name_list[0:3]) #取下标0至下标3之间的元素,包括0,不包括3#['Alex', 'Tenglan', 'Eric']print(name_list[:3]) #:前什么都不写,表示从0开始,效果跟上句一样#['Alex', 'Tenglan', 'Eric']print(name_list[3:]) #:后什么不写,表示取值到最后#['Rain', 'Tom', 'Amy']print(name_list[:]) #:前后都不写,表示取值所有#['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']print(name_list[-3:-1]) #从-3开始到-1,包括-3,不包括-1#['Rain', 'Tom']print(name_list[1:-1]) #从1开始到-1,下标有正有负时,正数在前负数在后#['Tenglan', 'Eric', 'Rain', 'Tom']print(name_list[::2]) #2表示,每个1个元素,就取一个#['Alex', 'Eric', 'Tom']#注:[-1:0] [0:0] [-1:2] 都是空 |
② 追加
|
1
2
3
4
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]name_list.append("new") #append追加,加到最后,只能添加一个print(name_list)#['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', 'new'] |
③ 插入
|
1
2
3
4
|
#插入name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]name_list.insert(3,"new") #insert插入,把"new"加到下标3的位置print(name_list) |
④ 修改
|
1
2
3
4
|
#修改name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]name_list[2] = "lzl" #把下标2的字符串换成lzlprint(name_list) |
⑤ 删除
|
1
2
3
4
5
6
7
8
9
10
11
|
#3种删除方式name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]del name_list[3] #del删除,指定要删除的下标print(name_list)#['Alex', 'Tenglan', 'Eric', 'Tom', 'Amy']name_list.remove("Tenglan") #remove删除,指定要删除的字符print(name_list)#['Alex', 'Eric', 'Tom', 'Amy']name_list.pop() #pop删除,删除列表最后一个值print(name_list)#['Alex', 'Eric', 'Tom'] |
⑥ 扩展
|
1
2
3
4
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]age_list = [11,22,33]name_list.extend(age_list) #extend扩展,把列表age_list添加到name_list列表print(name_list) |
⑦ 拷贝
|
1
2
3
4
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]copy_list = name_list.copy() #copy拷贝,对列表进行复制print(copy_list)#注:博客最下有关于深浅copy的详细区分 |
⑧ 统计
|
1
2
3
|
name_list = ["Alex","Tenglan","Eric","Amy","Tom","Amy"]print(name_list.count("Amy")) #count统计,统计列表Amy的个数#2 |
⑨ 排序和翻转
|
1
2
3
4
5
6
7
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy","1","2","3"]name_list.sort() #sort排序,对列表进行排序print(name_list)#['1', '2', '3', 'Alex', 'Amy', 'Eric', 'Rain', 'Tenglan', 'Tom']name_list.reverse() #reverse翻转,对列表进行翻转print(name_list)#['Tom', 'Tenglan', 'Rain', 'Eric', 'Amy', 'Alex', '3', '2', '1'] |
⑩ 获取下标
|
1
2
3
|
name_list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]print(name_list.index("Tenglan")) #index索引,获取字符的下标#1 |
六、元组
如:(11,22,33,44,55)、('wupeiqi', 'alex','lzl')
1、创建元组:
|
1
2
3
4
5
6
7
8
9
10
11
|
#5种创建方式age = 11,22,33,44,55 #直接写数字或者字符串,默认创建类型元组 字符串类型用引号'lzl'#输出: (11, 22, 33, 44, 55) age = (11,22,33,44,55) #常见命名方式,()指定类型元组#输出: (11, 22, 33, 44, 55)age = tuple((11,22,33,44,55)) #tuple 以类的方式创建(()) 双括号 里面的()不可去掉#输出: (11, 22, 33, 44, 55)age = tuple([11,22,33,44,55]) #同(()) 效果一样 很少用 忘记它#输出: (11, 22, 33, 44, 55)age = tuple({11,22,33,44,55}) #({})创建的元组,随机排列 没卵用#输出: (33, 11, 44, 22, 55) |
2、元组类常用功能:
|
1
2
3
4
5
6
7
8
|
##count #统计元组字符出现的次数 name = ('wupeiqi', 'alex','lzl')print(name.count('alex')) # 1##index #查看字符串所在的索引位置name = ('wupeiqi', 'alex','lzl')print(name.index('lzl')) # 2 |
七、字典 无序
如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80}
注:字典一种key:value 的数据类型,也称键值对。字典dict是无序的,key值必须是唯一的,不能有重复。循环时,默认循环的是key
|
1
2
3
4
5
6
7
|
#两种创建方式:info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}print(info_dic)#{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'}info_dic = dict({'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",})print(info_dic)#{'stu1102': 'LongZe Luola', 'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'} |
2、字典类常用功能:
① 增加
|
1
2
3
|
info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}info_dic['stu1104'] = "JingKong Cang" #增加print(info_dic) |
② 修改
|
1
2
3
|
info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}info_dic["stu1101"] = "Jingkong Cang" #有相应的key时为修改,没有为增加print(info_dic) |
③ 删除
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#3种删除方式info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}info_dic.pop('stu1101') #pop删除,指定删除的keyprint(info_dic)#{'stu1103': 'XiaoZe Maliya', 'stu1102': 'LongZe Luola'}del info_dic['stu1102'] #del删除,指定删除的keyprint(info_dic)#{'stu1103': 'XiaoZe Maliya'}info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}info_dic.popitem() #随机删除,没卵用print(info_dic)#{'stu1101': 'TengLan Wu', 'stu1103': 'XiaoZe Maliya'} |
④ 查找value值
|
1
2
3
4
5
|
info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}print(info_dic.get('stu1102')) #get查找,通过key查找value值#LongZe Luolaprint(info_dic['stu1102']) #通过key直接查找,但是如果输入查找的key不存在的话,就会报错,get则不会#LongZe Luola |
⑤ 字典多级嵌套
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] }}av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"print(av_catalog["大陆"]["1024"])#['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来'] |
⑥ 循环
|
1
2
3
4
5
6
7
8
9
10
11
|
info_dic = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",}for stu_nu in info_dic: print(stu_nu,info_dic[stu_nu]) #循环默认提取的是key#stu1103 XiaoZe Maliya#stu1101 TengLan Wu#stu1102 LongZe Luolafor k,v in info_dic.items(): #先把dict生成list,数据量大的时候费时,不建议使用 print(k,v)#stu1103 XiaoZe Maliya#stu1101 TengLan Wu#stu1102 LongZe Luola |
八、集合
如:{'lzl', 33, 'alex', 22, 'eric', 'wupeiqi', 11}
注:集合是一个无序的,不重复的数据组合。去重性,把一个列表变成集合,就自动去重了。关系测试,测试两组数据之前的交集、差集、并集
1、创建集合
|
1
2
3
4
|
#标准创建方式info_set = set(["alex","wupeiqi","eric","lzl",11,22,33])print(info_set,type(info_set))#{33, 11, 'wupeiqi', 'lzl', 'alex', 'eric', 22} <class 'set'> |
2、集合类常用功能
① 添加
|
1
2
3
4
5
6
7
8
9
10
|
#添加的两种方式set_1 = set(["alex","wupeiqi","eric","lzl"])set_1.add(11) #add只能添加一个元素print(set_1)#{'alex', 'lzl', 'eric', 11, 'wupeiqi'}set_1 = set(["alex","wupeiqi","eric","lzl"])set_1.update([11,22,33])print(set_1) #update可以添加多个元素#{33, 11, 'alex', 'wupeiqi', 'eric', 22, 'lzl'} |
② 删除
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#删除的三种方式set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_1.remove("alex") #remove 删除指定元素print(set_1)#{'eric', 33, 'lzl', 11, 22, 'wupeiqi'}set_1.pop() #pop 随机删除元素print(set_1)#{33, 'wupeiqi', 11, 22, 'lzl'}set_1.discard("lzl") #discard 删除指定元素,与remove区别在于,如果元素不存在也不会报错set_1.discard(55)print(set_1)#{33, 'wupeiqi', 11, 22} |
3、集合关系测试
① 交集
|
1
2
3
4
5
6
|
#交集set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])print(set_1.intersection(set_2)) #intersection 取两个set的交集 set_1和set_2可以互换位置#{33, 11, 22} |
② 并集
|
1
2
3
4
5
6
|
#并集set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])print(set_1.union(set_2)) #union 取两个set集合的并集 set_1和set_2可以互换位置#{33, 66, 11, 44, 'eric', 55, 'lzl', 22, 'wupeiqi', 'alex'} |
③ 差集
|
1
2
3
4
5
6
|
#差集set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])print(set_1.difference(set_2)) #difference 取两个set集合的差集 set_1有但是set_2没有的集合#{'lzl', 'eric', 'wupeiqi', 'alex'} |
④ 子集、父集
|
1
2
3
4
5
6
7
8
|
#子集set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])set_3 = set([11,22,33])print(set_1.issubset(set_2)) #issubset 子集#Falseprint(set_1.issuperset(set_3)) #issuperset 父集#True |
⑤ 对称差集
|
1
2
3
4
5
6
|
#对称差集set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])print(set_1.symmetric_difference(set_2)) #symmetric_difference 对称差集=两个集合并集减去合集#{66, 'lzl', 'eric', 'alex', 55, 'wupeiqi', 44} |
⑥ 运算符做关系测试
|
1
2
3
4
5
6
7
8
9
10
11
|
#运算符做关系测试set_1 = set(["alex","wupeiqi","eric","lzl",11,22,33])set_2 = set([11,22,33,44,55,66])set_union = set_1 | set_2 # 并集set_intersection = set_1 & set_2 # 交集set_difference = set_1 - set_2 # 差集set_symmetric_difference = set_1 ^ set_2 # 对称差集 |
Python【第二章】:Python的数据类型的更多相关文章
- Python第二章-变量和数据类型
变量和数据类型 一.什么是变量,常量 思考:程序执行指的是什么? 对数据进行存储处理和计算,最终获得结果,这是程序执行的本质. 变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以 ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- 第二章Python入门
第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
- 第二章 深入 C# 数据类型
第二章 深入 C# 数据类型 1.封装又称信息隐藏,是指利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外部发生联系. ...
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- 孤荷凌寒自学python第二十八天python的datetime.date模块
孤荷凌寒自学python第二十八天python的datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.toordinal() 此方法将访问从公元1年1月1日至当 ...
- 孤荷凌寒自学python第二十二天python类的继承
孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...
随机推荐
- IIS 7.5 Application Warm-Up Module
http://www.cnblogs.com/shanyou/archive/2010/12/21/1913199.html 有些web应用在可以处理用户访问之前,需要装载很多的数据,或做一些花费很大 ...
- js 随机生成姓名、手机号、身份证号、银行卡号
开发测试的时候,经常需要填写姓名.手机号.身份证号.银行卡号,既要符合格式要求.又不能重复.大家会到网上搜各种生成器.能不能自己写一个简单的生成器呢.下面是随机生成姓名.手机号.身份证号.银行卡号的j ...
- Linux配置环境报“/usr/local/develop-tools/apache-maven-3.3.9/bin: 是一个目录“的解决方案
安装Maven中 配置系统环境变量: # vi + profile M2_HOME=/usr/local/develop-tools/apache-maven- export M2_HOME PATH ...
- [windows]win10家庭版切换到管理员账户
背景:很多时候,在安装或者运行某些程序时会需要到管理员账户运行.而在win10家庭版却没有明显的位置可以让用户简单的进行切换.因此,有了以下的方法. 方法: 1.在搜索框中输入CMD,右键以管理员方式 ...
- web.xml is missing and <failOnMissingWebXml> is set to true 错误解决办法
对web项目的解决方案: 右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub. 然后系统会在src/main/webapp ...
- docker核心原理
容器概念. docker是一种容器,应用沙箱机制实现虚拟化.能在一台宿主机里面独立多个虚拟环境,互不影响.在这个容器里面可以运行着我饿们的业务,输入输出.可以和宿主机交互. 使用方法. 拉取镜像 do ...
- [python]爬虫学习(二)
---恢复内容开始--- #python2 import urllib2 #python3 import urllib.request html=urllib.request.urlopen('htt ...
- .replace(R.id.container, new User()).commit();/The method replace(int, Fragment) in the type FragmentTransaction is not app
提示错误:The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arg ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- es6学习笔记1 --let以及const
let语句的基本用法: 1.let声明的变量为块级作用域,只在最近的{}里面有效,如果在外部引用就会报错. { let a = 10; var b = "hello" } ale ...