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
随机推荐
- 笨办法学Python
打印:%r%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别.%s => str(),比较智能%r => repr(),处理较为简单和直接 from ...
- Tensorflow细节-P319-使用GPU基本的操作
如果什么都不加,直接运行装了GPU的Tensorflow,结果是这样子的 import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0], shape= ...
- 又一款dump文件观察工具---MiniDumpView
简介 MiniDumpView实用程序可用于显示minidump中数据流的内容.特别是,可以显示以下信息: 操作系统和CPU信息 进程信息(进程ID和时间) 模块列表(包含每个模块的详细信息) 线程列 ...
- windbg在加载模块时下断点
假设我们希望在加载特定的dll时中断调试器,例如,我想启用一些SOS命令,而clr还没有加载,当您遇到程序中过早发生的异常,并且您不能依赖手动尝试在正确的时间中断时,这尤其有用.例如,在将调试器附加到 ...
- a list of frequently asked questions about Circus
转自:https://circus.readthedocs.io/en/latest/faq/,可以帮助我们了解circus 的使用,以及问题解决 How does Circus stack comp ...
- IIS 站点配置文件
IIS 站点配置文件 C:/Windows/System32/inetsrv/config/applicationHost.config 配置文件示例: <system.application ...
- 计蒜客 39268.Tasks-签到 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest A.) 2019ICPC西安邀请赛现场赛重现赛
Tasks It's too late now, but you still have too much work to do. There are nn tasks on your list. Th ...
- 【00NOIP普及组】税收与补贴问题(信息学奥赛一本通 1911)( 洛谷 1023)
[题目描述] 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给 定的最高价位后,销量以某固定 ...
- 第12组 Alpha冲刺(6/6)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- SpringMVC自定义类型转换器
SpringMVC 自定义类型转换器 我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据 ...