python语言(二)列表、字典、集合、文件读写、关系测试
- s = '王宇建,苏红,邹存才...'
- # 列表 数字 list
- l = ['王宇建','苏红','邹存才'] # 一维数组 二维数组 三维数组
- # 0 1 2
- # 索引、下标、角标
- l3 = [1,2,3,4,['abc',123,'ccd'],7] # list里面套list 这就叫做二维数组 以此类推三维数组
- # list取元素的时候是根据编号取值的
- print(l[0])
- print(l[1])
- print(l[-1]) # -1就是取最后一个元素
- # 增加元素
- l.append('王亚娟') # append是在末尾增加元素
- l.append('李永')
- l.insert(0,'周杰伦') # 在指定位置增加元素
- l.insert(7,123) # 如果你指定的下标没有,那么就加到最后面
- # 修改
- l[3] = '财神爷'
- print(l)
- # 删除
- l.pop(3) # 指定下标删除
- l.remove('王宇建') # 指定元素删除
- del l[0] # 指定下标删除
- print(l)
- print(l.count('王亚娟')) # count 就是该元素出现次数
- index = l.index(123) # 找元素下标
- l.reverse() # 反转list
- l2 = [4,5,2,24,23,564,135,5432]
- l2.sort() # 排序 l2.sort(reverse=True) # 降序
- print(l2)
- l3 = l + l2 # 直接相加就是把两个list合并成一个list
- print('L3',l3)
- l.extend(l2) # 把 l2里面的元素加到l里面
- print('L',l)
- students = ['zhouchuncai','gaotiaoming','limingmin']
- # for stu in students:
- # print(stu)
- for i in students:
- print(i)
- # 通过下标来循环
- # for i in range(len(students)):
- # print(students[i])
- if 'zhouchuncai' in students: # 或者用not in来判断是否在list里面
- print('存在') # 1、判断存在
- elif 'zhou' not in students:
- print('不存在') # 2、判断不存在
- # in 或 not in 也可以用在字符串里面
- s='abc'
- if 'a' in s:
- print('存在')
- students = ['zhouchuncai','gaotiaoming','limingmin']
- students2 = [']
- # 字典key - value -----字典的查找速度比list快很多
- d = {'name':'zhouchuncai',
- ',
- 'sex':'未知',
- 'addr':'北京',
- '}
- # 1、取值 有两种方式
- #print(d['name']) # 取不存在的key会报错
- print(d.get('money')) # 用第二种方式取值,如果取不到不会报错,显示None
- # 1、取值 有两种方式
- #print(d['name']) # 取不存在的key会报错
- print(d.get('money')) # 用第二种方式取值,如果取不到不会报错,显示None
- # 2、增加key
- # d['money']=500 # 如果key存在,就修改它的值
- # d.setdefault('car','bmw') # 如果key存在,那就不管了
- # print(d)
- # 3、修改
- d['sex'] = '女' # 修改
- # 4、删除
- #d.pop('sex')
- # d.pop('sex') # 删除指定的key,会返回删除的值
- # del d['sex'] # 删除指定的key
- # 5、 d.clear() # 清空字典
- print(d.keys()) # 字典里面所有的key
- print(d.values()) # 字典里面所有的value
- print(d)
- # 4、删除
- #d.pop('sex')
- # d.pop('sex') # 删除指定的key,会返回删除的值
- # del d['sex'] # 删除指定的key
- # 5、 d.clear() # 清空字典
- print(d.keys()) # 字典里面所有的key
- print(d.values()) # 字典里面所有的value
- print(d)
- d = {
- 'id':315,
- 'name':'矿泉水',
- 'sex':'女',
- 'age':27,
- 'addr':'上海',
- 'grade':'摩羯座',
- ',
- 'gold':100
- }
- # 方法一 优先选这种方式
- # for k in d: # 直接循环字典,每次取得是字典里面的key
- # value = d.get(k) # 循环的时候同时取到key和value
- # print(k,value)
- # 方法二
- print(d.items())
- print(d.keys())
- # for key,value in d.items():
- # print(key,value)
- # if 'id' in d: 如果字典用in来判断的话,它判断的是key存在不存在
- # if 'id' in d.keys()
- # stus = {'username':'wangyujian','password':'123456'}
- stus2 = {'}
- for i in range(3):
- username = input('username:').strip()
- pwd = input('password:').strip()
- cpwd = input('cpassword:').strip()
- if username == '' or pwd == '' or cpwd == '':
- print('输入不能为空')
- elif username in stus2:
- print('用户已注册')
- elif pwd != cpwd:
- print('两次输入的密码不一致')
- else:
- stus2.setdefault(username,pwd)
- print('注册成功!')
- print(stus2)
- print(l[0:3]) # 切片是顾头不顾尾,即第4个元素不含在取值范围里面
- print(l[:3]) # 冒号前头没数组,那就从第一个开始
- print(l[3:]) # 冒号后头没数组,那就从第4个开始一直取到最后
- print(l[:]) # 只有冒号-就取全部元素
- s = 'abc1234'
- print(s[2::5]) # 字符串内的元素也一样
- print(l[0:7:2]) # 从下标为0开始,中间隔1个元素取一个,步长
- print(l[::2]) # 从开头,中间隔1个元素取一个,步长
- l = [1,2,3,4]
- l2 = (1,2,3,4) # 元组和list最大区别就是里面的数据不能修改
- l[1] = '
- print(l2[0:2])
- # 在python里面分两种数据类型:#1、可变数据类型:list、dict
- #2、不可变数据类型:tuple、str、float、int
- db_info = [','db1']
- db_info = (','db1') # 里面元素不可修改
- l = [1,2,3,4,5,6,7,8,9,10]
- l2 = [1,2,3,4,5,6,7,8,9,10]
- for i in l2:
- if i%2 != 0: # i%2 表示取偶数
- l.remove(i)
- print(l)
- # 浅拷贝
- l = [1,2,3,4,5,6]
- l2 = l
- print('l的内存地址',id(l))
- print('l2的内存地址',id(l2))
- l.append('吴丽丽')
- l2.remove(1)
- print('l',l)
- print('l2',l2)
- import copy
- l = [1,2,3,4,5,6]
- l2 = copy.deepcopy(l)
- print('l的内存地址',id(l))
- print('l2的内存地址',id(l2))
- l.append('吴丽丽')
- l2.remove(1)
- print('l',l)
- print('l2',l2)
- import copy
- l = [1,2,3,4,['a','b','c']]
- l2 = copy.deepcopy(l) # 深拷贝
- l2 = l[:] # 浅拷贝
- l2 = l # 浅拷贝
- l2 = l.copy() # 浅拷贝
- copy.copy(l2) # 浅拷贝
- print('l',id(l))
- print('l2',id(l2))
- l[-1].append('abc')
- l2.insert(0,'A')
- l.append('!!!!!')
- print('l',l)
- print('l2',l2)
- s = 'abc'
- s.strip()
- s.lstrip()
- s.rstrip()
- s.lower()
- s.upper()
- s.count('a')
- print(s.index('a')) # 找字符串的下标 index找不到就报:0
- print(s.find('d')) # 找字符串的下标 find找不到就报:-1
- name = '小黑'
- s = '你的名字是{}'.format(name)
- s = '你的名字是{name}'
- print(s.format_map({'name':'小白'}))
- print(s.isupper()) # 判断是不是都是大写字母
- print(s.islower()) # 判断是不是都是小写字母
- print(s.isdigit()) # 判断是否为数字
- s.startswith() # 判断什么开头
- s.endswith() # 判断什么结尾
- s = 'img.jpg'
- ')) # 判断以xx开头
- print(s.endswith('jpg')) # 判断以xx结尾
- number = input('请输入要产生几条:')
- if not number.isdigit():
- print('请输入整数!')
- else:
- number = int(number)
- print(number)
- s = 'a哈哈'
- print(s.isalpha()) # 如果是字母和汉字的话返回true
- print(s.isalnum()) # 如果是字母、汉字和数字的话返回true;只要不包含特殊字符都返回true
- s.isspace(' ') # 是不是空格
- print(s.capitalize()) # 首字母大写
- print(s.title()) # 多个单词首字母大写
- s = '
- print(s.center(50,'*')) # 居中
- print(s.zfill(5)) # 补零
- s = 'aaaaaaabc'
- s = s.replace('a','A') # Abc 替换
- print(s)
- s = 'gaotianming,zoucuncai,choulihong,suhong'
- s = 'gaotianming/zoucuncai/choulihong/suhong'
- result = s.split('/') # 用逗号分割每个元素
- print(result)
- #''.join 方法 连接字符串
- import pprint
- l = ['a','b','c'] # 把它变成abc
- pprint.pprint(str(l)) # 把list里的内容都转成字符串
- pprint.pprint(''.join(l)) # 以空字符串把a、b、c连接起来
- l = [1,2,3,4,5]
- # 把list元素变成字符串如下
- s='
- # 方法一
- l2 = []
- for i in l:
- l2.append(str(i))
- print(''.join(l2))
- # 方法二
- l2 = [str(i) for i in l]
- print(''.join(l2)) # 方法一、方法二代码效果一样
- l3 = [i for i in range(10) if i%2==0]
- print(l3)
- f = open('a.txt',encoding='utf-8')
- result = f.read()
- print(result)
- f.close()
- # 文件写
- f = open('a.txt','w',encoding='utf-8')
- f.write('你好') # 写的时候会清空原来的文件
- f = open('a.txt',encoding='utf-8')
- result = f.read()
- print(result)
- f.close()
- f = open('a.txt','w',encoding='utf-8')
- f.write('gaotianming'+'\n')
- f.write('wangjiangyu'+'\n')
- f = open('a.txt',encoding='utf-8')
- result = f.read()
- print(result)
- f.close()
- # 打开文件写绝对路径,要加:r
- f = open(r'E:\PycharmProjects\mjz\day2\a.txt','w',encoding='utf-8')
- f.write('高天明'+'\n')
- f.write('王靖宇'+'\n')
- f = open('a.txt',encoding='utf-8')
- result = f.read()
- print(result)
- f.close()
- f = open('a.txt','w',encoding='utf-8')
- l = [']
- for i in l:
- f.write(i+'\n')
- f = open('a.txt',encoding='utf-8')
- result = f.read()
- print(result)
- f.close()
- s = {1,2,3,1,2,3,4,5,6}
- s2 = set() # 空集合
- print(s)
- l = [1,2,3,1,2,3,4,5,6]
- print(set(l))
- print(l)
- # 关系测试
- zidonghuaban = set(['gaotianming','wangjianyu','suhong'])
- xingnengban = set(['jinshuang','gaotianming','wangjianyu'])
- # 找出即学过自动化也学过性能的同学 (交集)
- print(zidonghuaban & xingnengban) # 取交集
- print(zidonghuaban.intersection(xingnengban)) # 取交集
- print(zidonghuaban.union(xingnengban)) # 取并集 把两个集合合并到一起,然后去掉重复的
- print(zidonghuaban|xingnengban) # 取并集
- a = {1,2,3,4,5,6,232}
- b = {3,4,5}
- print(a-b) # 差集,在a集合里面存在,但在b集合里面没有
- print(a.difference(b)) # 差集
python语言(二)列表、字典、集合、文件读写、关系测试的更多相关文章
- Python基础2 列表 字典 集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...
- 关于Python元祖,列表,字典,集合的比较
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...
- python中元组/列表/字典/集合
转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
随机推荐
- SQL Server 10分钟理解游标
概述 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式 ...
- AntDesign vue学习笔记(六)Table 显示图片
AntDeign官网上没有table动态绑定显示图片的示例,baidu上搜索出来的大部分都是React语法,无法使用. 经过摸索,实现方法如下:以显示一个图片,一个按钮为例(picurl是返回的jso ...
- Vue父组件如何调用子组件(弹出框)中的方法的问题
如果子组件是一个弹出框,只有在触发某个点击事件时弹出框才能出现(也就是说在父组件中的子组件使用上用了v-if),那在父组件上如果不点击弹出框是不能获取到$ref的. 原因就是:引用指向的是子组件创建的 ...
- vue的package.json文件理解
参考文档: https://www.cnblogs.com/tzyy/p/5193811.html#_h1_0 https://www.cnblogs.com/hongdiandian/p/83210 ...
- Lua代码编写规范
开发中,大量使用lua,暂时根据当前状况,总结相对而言较好的规范,在多人协作中可以更好的开发.交流. 介绍 该文档旨在为使用lua编写应用程序建立编码指南. 制订编码规范的目的: 统一编码标准,通用 ...
- Centos Docker 安装 Apache Guacamole
经常在ubuntu上折腾,偶尔在centos来也来玩一把吧 1.安装DOCKER cd /etc/yum.repos.d wget https://download.docker.com/linux/ ...
- 用Python程序温度转换实例
实例:温度转换 (1)分析问题:利用程序进行温度转换,由用户输入温度值,程序给出输出结果:通过语音识别,图像识别等方法自动监听并获得温度信息发布渠道(如收音机.电视机)给出的温度播报源数据,再由程序装 ...
- WPF 在MVVM模式下弹出子窗体的方式
主要是通过一个WindowManager管理类,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show方法,显示出来 ...
- Eclipse集成Git做团队开发:代码管理
在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...
- js浏览器对象模型【BOM】(十三)
一.时间定时器1.超时调用setTimeout(fun,time) [返回一个唯一标识该超时调用的ID数值]参数:fun:要执行的函数time:设置第多少毫秒后执行fun函数 clearTime ...