python基础(二)-- 列表、字典、集合、字符串操作
4、列表:
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
import copy
i=0
#persons=['dailaoban','xiekeng',['age',100,50],'pangge','xiuchuan']
persons=['dailaoban','xiekeng','pangge','xiuchuan']
#--------------- 查看 ------------
'''print(persons)
print(persons[1]) #打印xiekeng
print(persons[1:3]) #打印xiekeng和pangge(顾头不顾尾)
print(persons[-1]) #打印xiuchuan
print(persons[-3:-1]) #打印后两个 错了打印的是中间两个
print(persons[-2:]) #打印后两个 0和-1可以不用输入
'''
#-------------- 增加 ------------
'''persons.append('xiaojianjian') #在最后增加
print(persons)
persons.insert(1,'xiaopang') #在1的位置增加
print(persons)
'''
#-------------- 修改 ---------------
'''persons[1]='xiezhenkeng' #将xiekeng改为xiezhenkeng
print(persons)
'''
#-------------- 删除 ---------------
#persons.remove('xiuchuan') #删除xiuchuan
#print(persons)
#del persons[2] #删除pangge
#print(persons)
'''persons.pop() #默认删除最后一个
print(persons)
persons.pop(1) #删除xiekeng
print(persons)
'''
#-------------- 查找位置 -------------------
'''print(persons.index('xiuchuan')) #输出xiuchuuan的位置是3
print(persons[persons.index('xiuchuan')]) #输出xiuchuan
'''
#-------------- 排序 ----------------
#persons.sort() #默认排序按ASCII码排序
#print(persons)
persons.reverse() #翻转
print(persons)
#-------------- 拼接 ------------------
'''persons2=[1,2,3,4]
persons.extend(persons2)
print(persons,persons2)
'''
#-------------- 清除 ------------------
'''persons2.clear()
print(persons2)
'''
#-------------- 复制 --------------------
#p1=persons.copy()
#print(p1)
#persons[1]='xiezhenkeng'
#p2=persons.copy()
#print(persons,p1,p2)
#persons[2][0]='name'
#p3=persons.copy()
#print(persons,p1,p2,p3) #浅层复制 只复制第一层,第二层该怎么变还怎么变
#-------- 深层复制 -------
'''
p2=copy.copy(persons)
p3=copy.deepcopy(persons) #深层复制 所有层都是复制原列表改变,复制列表不会改变
persons[2][0]='name'
persons[1]='xiezhenkeng'
print(persons,p2,p3)
#---------------- 跳切片 -----------
print(persons[0:-1:2])
print(persons[::2])
print(persons[2][2])
#--------------- 循环 ---------------
for name in persons:
print(name)
'''
5、元组(不可变列表):
创建元组:
ages = (11, 22, 33, 44, 55)或ages = tuple((11, 22, 33, 44, 55))
6、字典:
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
b={'stu1101':"alex",
2:3,
4:5}
info.update(b) #合并两个字典,把key重复的覆盖
print(info)
print(info.items()) #把字典转成列表
#----------------------------------------------------
c=dict.fromkeys([6,7,8],[1,{"name":"alex"},444]) #初始化一个新字典
print(c)
c[6][1]["name"]='jack' #你以为只修改了一个,但其实全改了
print(c)
#------------- 增加 ----------------
info["stu1104"]="canglaoshi"
print(info)
#------------- 修改 ---------------
info['stu1101']="武藤兰"
print(info)
#------------- 删除 ----------------
'''
info.pop('stu1101') #标准删除
print(info)
del info['stu1102'] #万能删除
print(info)
info.popitem() #随机删除
print(info)
'''
#------------- 查找 -----------------
print(info['stu1102']) #如果key不存在就会报错
print("stu1105" in info) #存在为true,不存在为false 在py2中 info.has_key("stu1105")
print(info.get('stu1102')) #存在就输出,不存在为None
#------------ 循环 ------------------
for i in info : #只循环key
print(i,info[i])
for k,v in info.items() : #此方式少用
print(k,v)
#----------- 嵌套 -----------------
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"])
av_catalog.setdefault("taiwan",{"www.baidu.com":[1,2]})# 不存在的记录会添加
av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]})# 已存在的不做修改
print(av_catalog)
#-------------------------------------------------------------
print(info.values())
print(info.keys())
7、集合:
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
list_1=[1,4,5,7,3,6,7,9]
list_1=set(list_1)
list_2=set([2,6,0,66,22,8,4])
print(list_1,type,list_2)
#交集
print(list_1.intersection(list_2))
print(list_1&list_2)
#并集
print(list_1.union(list_2))
print(list_1|list_2)
#差集
print(list_1.difference(list_2))
print(list_2.difference(list_1))
print(list_1-list_2)
print(list_2-list_1)
#子集
list_3=set([1,3,7])
print(list_3.issubset(list_1)) #判断list_3是否是list_1的子集
print(list_1.issuperset(list_3)) #判断list_1是否是list_3的父集
#对称差集
print(list_1.symmetric_difference(list_2)) #保留list_1和list_2中不重复的数据
print(list_1^list_2)
#--------------------------------------------
print(list_2.isdisjoint(list_3)) #如果二者无交集则返回True
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#添加
list_1.add(999) #添加一项
list_1.update([888,777,555]) #添加多项
print(list_1)
#删除
list_1.remove(555) #删除指定值,如果不存在会报错
print(list_1)
print(list_1.pop()) #随机删除一个值并返回该值
list_1.discard(999) #删除指定值,如果不存在不会报错
list_1.discard(1000) #删除指定值,如果不存在不会报错
print(list_1)
#长度
print(len(list_1))
#测试是否是集合/字典/列表的成员
print(5 in list_1)
8、字符串操作(不可修改):
name = "my \tname is {name} and age is {age}"
print(name.capitalize()) # 首字母大写
print(name.count("a")) # 计算"a"出现的次数 2
print(name.center(50, '-')) # 打印50个字符,不足用'-'补足-----------------my name is alex------------------
print(name.endswith("ex")) # 判断是否以'ex'结尾,是返回True,否返回False
print(name.expandtabs(tabsize=30))
print(name.find("name")) # 字符串也可以切片,同列表
print(name[name.find("name"):])
print(name.format(name='alex', age=23)) # 格式化输出
print(name.format_map({'name': 'alex', 'age': 23}))
print(name.index('n')) # 输出下标,同列表
print('ab23'.isalnum()) # 判断是否包含阿拉伯数字
print('ab23/'.isalnum()) # 不能有特殊符
print('abA'.isalpha()) # 是否只有英文字母
print('1'.isdecimal()) # 判断是否是十进制
print('1'.isdigit()) # 是否是整数
print(name.isidentifier()) # 判断是不是一个合法的标识符
print(name.islower()) # 判断是不是小写
# print('33'.isnumeric()) #判断是不是只有数字
print(' '.isspace()) # 判断是不是空格
print('My name'.istitle()) # 返回False
print('My Name'.istitle()) # 返回True
print('My Name'.isprintable()) # 判断能否打印
print('My Name'.isupper()) # 判断是否全是大写
print(''.join(['1', '2', '3'])) # 把列表变成字符串
print(name.ljust(50, '*')) # 打印长度50,不足用*在后面补足
print(name.rjust(50, '-')) # 打印长度50,不足用*在前面补足
print('Alex'.lower()) # 把大写变成小写 alex
print('Alex'.upper()) # 把小写变成大写 ALEX
print('\nAlex'.lstrip()) # 去掉左边的换行
print('\nAlex\n'.rstrip()) # 去掉右边的换行
print('\n Alex\n'.strip()) # 去掉两边的换行和空格
p = str.maketrans("abcdef", '123456')
print("alex li".translate(p)) #
print('alex li'.replace('l', 'L')) # 替换
print('alex li'.replace('l', 'L', 1)) # 替换一个
print('alex li'.rfind('l')) # 找到最右边的字符并返回下标
print('alex li'.split()) # 默认按空格把字符串分成列表
print('1+2+3+4'.split('+')) # 按'+'把字符串分成列表
print('1+2\n+3+4'.splitlines()) # 按换行把字符串分成列表
print('alex'.startswith('a')) # 判断是否以'a'开头
print('Alex Li'.swapcase()) # 大写变小写,小写变大写
print('alex li'.title()) # 首字母变大写
print('alex li'.zfill(50)) # 不足50用0填充
print('1.0'.isnumeric())
python基础(二)-- 列表、字典、集合、字符串操作的更多相关文章
- Python基础2 列表 字典 集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- 关于Python元祖,列表,字典,集合的比较
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...
- Python基础知识--列表和集合
列表:有序性,可以存放任意类型的对象,通过索引访问,可以分片操作 >>> L = ['id', 1000, 'scd', 1000, 'scd'] >>> L [' ...
- python基础(六)dict字典和文件操作open
字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...
- python基础之列表以及切片等操作
列表 定义: 能装对象的对象,列表能放大量的数据,各种类型,且列表内的数据是可以修改保存的,常用 [ ] 去表示,每一项数据之间用逗号隔开 1.列表的索引与切片 1.1 索引 与字符串的索引几乎一致, ...
- Python基础灬列表&字典生成式
列表生成式 # 求1~10偶数的平方 # 1.常规写法 a_list = [] for i in range(1, 11): if i % 2 == 0: a_list.append(i * i) p ...
- python中元组/列表/字典/集合
转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566
随机推荐
- Array.Sort(valuesArry);
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist: Course has no coursedetail.
错误描述: 一对一反向查询失败! 前提: Course和CourseDetail OneToOne 原因: Course数据和CourseDetail数据没有一一对应.
- *arg和**kwarg作用
*args:可以理解为只有一列的表格,长度不固定. **kwargs:可以理解为字典,长度也不固定. 1.函数调用里的*arg和**kwarg: (1) *arg:元组或列表 ...
- gdb命令行
1.当程序出现core dump时,使用下面的命令调试: gdb 程序名 core.1234 或 gdb core.1234 gdb -c core.1234 程 ...
- windows系统的快速失败机制---fastfail
windows系统的快速失败机制---fastfail,是一种用于“快速失败”请求的机制 — 一种潜在破坏进程请求立即终止进程的方法. 无法使用常规异常处理设施处理可能已破坏程序状态和堆栈至无法恢复的 ...
- vault 使用 中间ca 进行证书管理
使用vault 进行pki 管理是很方便的,以前测试的都是由根证书进行证书签发,这次使用中间ca 进行签发 所以会有一个证书连 测试使用docker-compose 运行 环境准备 docker-co ...
- dinoql 使用nodejs 运行的几个问题
dinoql 是一个很不错的javascript objects 查询处理方案,基于graphql,当前版本有点问题 node 环境运行 ReferenceError: window is not d ...
- Xamarin Forms 实现发送通知点击跳转
1. Ensure the you have set LaunchMode.SingleTop on your MainActivity: LaunchMode.SingleTop [Activity ...
- cyyz: Day 2 线段树知识整理
Day 2 上午的听课,哎~昏昏欲睡好吧.. 一.扫描线 知识点: 由于多边形千变万化,要想填充多边形内部的所有像素,需要找到一种合适的规则,能够沿着一个方向,一个像素不漏地把多边形内部填满,同时不污 ...
- javascript之反柯里化uncurrying
使用方法: // 使用 var push=Array.prototype.push.uncurrying(); var obj={ "length": 1, "0&quo ...