python学习day3------列表、元组、字符串操作
列表是有序的,支持增删改查,可以嵌套列表、字典(任何东西)
元组是有序的,只读列表
字符串的操作,可查,不可修改(本质新新的内容覆盖了原来的)
字典是无序的,通过K:V找元素,可以嵌套列表、字典
集合是无序的
一、列表
变量名后加中括号[],接下来介绍对列表进行查操作
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen test = []#列表的命名形式 name = ["zhangsan","lisi","wangmazi","chenwu","gousheng"]
print(name[0],name[2])#取出已知位置的数据,因为计算机在存储数据的时候是以0为开始位置
#>>>>zhangsan wangmazi #查
#切片
print(name[1:3])#从计算机位第一个位取到第二位:顾首不顾尾,
#>>>>['lisi', 'wangmazi'] print(name[4])#在知道列表有多长的时候用这个方法可以取到列表最后一位
#>>>>gousheng print(name[-1])#在不知道长度有多长的时候用这个方法可以取到最后一位
#>>>>gousheng print(name[-2])#亦可理解位从0往左数
#>>>>chenwu print(name[-2:])#即便是写的是负数的位置表示,也是自左往右数,
# 但是有一个机制就是顾首不顾尾,
# 但我想取最后一位的时候就会被忽略掉,
# 所以这个时候在冒号后面什么都不写就可以
#>>>>['chenwu', 'gousheng'] print(name[0:3])
#>>>>['zhangsan', 'lisi', 'wangmazi']
print(name[:3])#这两个效果一样,前面若是0的话就可以省略不写
#>>>>['zhangsan', 'lisi', 'wangmazi']
对列表进行增、替换、删等操作
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen test = []#列表的命名形式 name = ["zhangsan","lisi","wangmazi","chenwu","gousheng"]
#增
#追加数据
name.append("quandan")
#>>>>['zhangsan', 'lisi', 'wangmazi', 'chenwu', 'gousheng', 'quandan'] #插在指定位置
name.insert(1,"mingzi")#想把数据插在第几机器位就直接写
#>>>>['zhangsan', 'mingzi', 'lisi', 'wangmazi', 'chenwu', 'gousheng', 'quandan'] #改
name[2] = "qiangzi"#把在机器位置2上的lisi换下来用qiangzi
#>>>>['zhangsan', 'mingzi', 'qiangzi', 'wangmazi', 'chenwu', 'gousheng', 'quandan'] #删
name.remove("wangmazi")#在知道名字的情况下删除wangmazi
del name[3] #删除机器位置3上的名字
name.pop()#默认不输入机器位置就删除最后一个,如果输入机器位就跟del name[3]一样
print(name)
清空、反转、排序、扩展
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen test = []#列表的命名形式 name = ["zhangsan","lisi","wangmazi","chenwu","gousheng","lisi"]
#查找wangmazi位置
print(name.index("wangmazi"))
#>>>> 2
#找出上述找到的位置删的名字
print(name[name.index("wangmazi")])
#>>>>wangmazi #列表允许出现多个名字一样的
print(name.count("lisi"))#查找叫lisi的有几个 #name.clear()#清空列表
#name.reverse()#反转列表
#name.sort()#排序,按照ascll码进行排序
name1 = [1,2,3,4]
name.extend(name1)#扩展,将name1添加到name后面,name1没有删除
print(name)
#>>>>['zhangsan', 'lisi', 'wangmazi', 'chenwu', 'gousheng', 'lisi', 1, 2, 3, 4]
复制copy、深copy
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen
import copy test = []#列表的命名形式
#name[]是一个列表在内存中存储name指向存储的地址,你更改name里的东西name2也会跟着变得
#因为他们共同指向内存地址,修改name2,name也会变
name = ["zhangsan","lisi","wangmazi",["eric","jack"],"chenwu","gousheng","lisi"] name2 = name.copy()#复制一份copy只是浅得复制了一些,只复制第一层列表
name[2] = "王麻子"
name[3][0] = "ERIC"
print(name,"\n",name2) #这个是赋值
name2 = name
#深copy就是完全复制,需要添加copy模
name2 = copy.deepcopy(name)
分位切片
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen
import copy test = []#列表的命名形式
#name[]是一个列表在内存中存储name指向存储的地址,你更改name里的东西name2也会跟着变得
#因为他们共同指向内存地址,修改name2,name也会变
name = ["zhangsan","lisi","wangmazi",["eric","jack"],"chenwu","gousheng","lisi"]
#跳两位进行切片
print(name[0:-1:2])#这个语句得作用就是从0到-1位每跳两位进行切
二、元组
查找数据的位置
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen #元组就两个功能count,index,得到机器位
name = ("zhangsan","lisi","wangmazi")
print(name.count("zhansgan"))
#>>>>0
print(name.index("lisi"))
#>>>>1
三、字符串操作
首字母大写
统计字符串有几个字母
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen
#字符串操作
name = "my {name} is {eric}"
#首字母大写
print(name.capitalize())
#>>>Eric #统计字符串---下面的程序是统计字符串a有多少个
print(name.count("a"))
#>>>>0 #将字符串用50个*包裹着写在中间
print(name.center(50,"*"))
#>>>>***********************eric********************** #判断字符串是不是以ic结尾
print(name.endswith("ic"))
#>>>>True #在字符串中写一个tab键,它将tab转换多少个空格
#name ="eri\tc"
print(name.expandtabs(tabsize=30))
#>>>>eri c #找字符串相应元素的机器位数
print(name.find("name"))
#>>>>3 #判断是否有阿拉字符
print("abc123".isalnum())
#判断是否包含英文字符(返回True或False)
print("asA".isalpha())
#判断是否为10进制
print("1A".isdecimal())
#判断是不是一个整数
print("1A".isdigit())
#判断是不是一个合法的标识符(变量名)
print("1A".isidentifier())
#判断是不是小写
print("aA".islower())
#检测字符串是否只由数字组成。这种方法是只针对unicode对象。
print("1a".isnumeric())
#判断是不是标题,判断标准是每个首字母大写
print("My name is title".istitle())
#设备终端文件用此方法判断
print("My name is ".isprintable())
#判断是不是全部大写
print("aD".isupper())
#将字符串区分开
print("+".join(["","",""]))
#>>>>1+2+3
#保证我的字符串长度为50,不够的在后面以*补全
print(name.ljust(50,"*"))
#保证我的字符串长度为50,不够的在前面补上-
print(name.rjust(50,"-"))
#把大写变成小写
print("Eric".lower())
#把小写换成大写
print("Eric".upper())
#从左边去掉空格或者回车
print("\nEric".lstrip())
#从右边去掉空格或者回车
print("Eric\n".rstrip())
#去掉两边的空格或者回车
print("\nEric\n".strip())
#命名的时候前后的位数一致,把字母与数字对应,然后显示p如果有对应的字母换作后面的显示(嗯古时候密文一样)
p = str.maketrans("abcde","")
print("Eric".translate(p))
#>>>>Eri3 #替换(把c换成大写的C)后面还可以跟一个参数。替换几个(print("Eric c".replace("c","C",1)))
print("Eric c".replace("c","C"))
#找到最后边那个值得下标返回
print("eric ic".rfind("c"))
#把字符串按照空格(默认)分成列表
print("eric is ".split())
#把字符串按照行分
print("eric\n c".splitlines())
#全部变成大写
print("eric c".swapcase())
#前边不够50位自动用0填充
print("eric c".zfill(50))
四、字典操作
增删查改
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen #Key-value
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
#字典是无需得没下标,有key
print(info)
#改字典stu1101(若不存在则创建)
info["stu1101"] = "武藤兰"
#查字典
print(info["stu1101"])
#删除字典
del info["stu1101"]
#指定删除
info.pop("stu1101")#标准姿势
#随机删除
info.popitem() #查
print(info.get("stu1103"))#得到其key对应得值
print("stu1103" in info)#info.has_key("1103") in py2.x
取值
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen #Key-value
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
b = {
'stu1101': "Eric",
1:3,
2:5
} #升级:有相同得key就覆盖,没有得就创建
info.update(b)
print(info) #初始化一个新的字典(作用跟copy一样)
c = dict.fromkeys([6,7,8],[1,{"name":"eric"},666])
print(c)
c[7][1]["name"] = "ASD"
print(c)
#{8: [1, {'name': 'eric'}, 666], 6: [1, {'name': 'eric'}, 666], 7: [1, {'name': 'eric'}, 666]}
#{8: [1, {'name': 'ASD'}, 666], 6: [1, {'name': 'ASD'}, 666], 7: [1, {'name': 'ASD'}, 666]} #字典变成列表
print(info.items()) av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
#修改
av_catalog["大陆"][""][1] = "可以在国内做镜像" #只打印关键字
print(info.keys()) #先去taiwan里取值,如果没有就创建,有就把它取出来
av_catalog.setdefault("taiwan",{"www.baidu.com":[1,2]})
print(av_catalog )
字典的循环
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen #Key-value
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
} #字典的循环
for i in info:
print(i,info[i]) #先转成列表在循环输出
for k,v in info.items():
print(k,v) #前者快后者慢
五、集合
集合的运算:交并补差,对称差集
#!/usr/bin/env python
#-*- Coding:utf-8 -*-
# Author:Eric.Shen #集合也是无序的
list1 = [1,5,9,4,8,3,45,7,]
list1 = set(list1) list2 = set([2,6,5,7,9,1,56,4])
print(list1,list2) #交集,list1与2的交集
print(list1.intersection(list2)) #运算符表达交集 a = t & s
#并集1与2的并集
print(list1.union(list2)) #运算符表达并集 b = t | s
#对称(反向)差集 交集的补集,全集是1和2 这是除去他们的交集剩下的元素
print(list1.symmetric_difference(list2)) #运算符表达对称差集 d = t ^ s
#差集1与2的差集,1与 1和2的交集之外的元素
print(list1.difference(list2)) #运算符表达交集 c = t - s #子集
list3 = set([1,3,7]) #3是1的子集,返回为True
print(list3.issubset(list1))
#1是3的父集,返回为True
print(list1.issuperset(list3)) #3与4有没有交集(如果3和4没有交集则返回true)
list4 = set([5,6,8])
print(list3.isdisjoint(list4))
集合的增删
#集合的添加 无序的
list1.add(999)
list1.update([999,77,55])
print(list1) #集合的删除
print(list1.pop())#删除任意的,并返回删除的那个内容
print(list1.remove(44444))#删除不存在的会报错
list1.discard(999999)#删除不存在的不会报错
python学习day3------列表、元组、字符串操作的更多相关文章
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- Python学习之路3 - 字符串操作&字典
本节内容: 常用的字符串处理. 格式化输出字符串. 字符串的替换. 字符串和二进制的相互转化. 字典的操作 字符串操作 常用的字符串处理 name = 'vector' print(name.capi ...
- 实验楼Python学习记录_挑战字符串操作
自我学习记录 Python3 挑战实验 -- 字符串操作 目标 在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所 ...
- python学习之列表元组,字典
list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...
- python 学习分享-列表元组篇
1 列表(list) 下面的代码就是把一个变量赋值为列表 a=['laay','aay','ay','y'] 列表中存在索引,可以通过索引来访问列表中的值,也可以通过索引完成切片 print(a[0] ...
- 《python基础教程(第二版)》学习笔记 列表/元组(第2章)
<python基础教程(第二版)>学习笔记 列表/元组(第2章)序列中的下标从0开始x='ABC' ==> x[0]='A', x[1]='B', x[2]='C'负数索引从右边开始 ...
- Python学习3——列表和元组
一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...
- 【python学习笔记】3.字符串使用
[python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
随机推荐
- React Native 网络层分析
文:志俊(沪江Web前端) 本文原创,转载请注明作者及出处 在使用React Native开发中,我们熟练的采用JavaScript的方式发送请求的方式发送一个请求到服务端,但是处理这个请求的过程其实 ...
- 个人项目--“”小鱼企业级开发系统“”Svn地址分享
由于精力有限,博主现在只维护这一个系统,会不时的更新代码提交. ""小鱼企业级开发系统""的Svn地址:http://code.taobao.org/svn/S ...
- Java反射-中级知识掌握
PS:本文就Java反射常用的中级知识做下汇总和分析/cnxieyang@163.com/xieyang@e6yun.com
- 【一小时入门】webpack 入门指南
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- isupper()函数
isupper()函数可以用来判断字符c是否为大写英文字母! 原型:extern int isupper(int c); 头文件:ctype.h 功能:判断字符c是否为大写英文字母 说明:当参数c为大 ...
- [bzoj2594][Wc2006]水管局长数据加强版 (lct)
论蒟蒻的自我修养T_T.. 和noi2014魔法森林基本一样...然而数据范围大得sxbk...UPD:这题如果用lct判联通的话可能会被卡到O(mlogm)..所以最好还是用并查集吧 一开始数组开太 ...
- [bzoj2288][POJ Challenge]生日礼物
用堆维护双向链表来贪心... 数据范围显然不容许O(nm)的傻逼dp>_<..而且dp光是状态就n*m个了..显然没法优化 大概就会想到贪心乱搞了吧...一开始想贪心地通过几段小的负数把正 ...
- HDU2063-过山车-匈牙利算法
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU5135 dfs搜索 枚举种数
Little Zu Chongzhi's Triangles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 ...
- the server responded with a status of 414 (Request-URI Too Large)
nginx 配置不当,前端ajax调用报错: the server responded with a status of 414 (Request-URI Too Large) 浏览器F12报错如下: ...