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('存在')
.png)
students = ['zhouchuncai','gaotiaoming','limingmin']
students2 = [']
# 字典key - value -----字典的查找速度比list快很多
d = {'name':'zhouchuncai',
',
'sex':'未知',
'addr':'北京',
'}
# 1、取值 有两种方式
#print(d['name']) # 取不存在的key会报错
print(d.get('money')) # 用第二种方式取值,如果取不到不会报错,显示None
.png)
# 1、取值 有两种方式
#print(d['name']) # 取不存在的key会报错
print(d.get('money')) # 用第二种方式取值,如果取不到不会报错,显示None
# 2、增加key
# d['money']=500 # 如果key存在,就修改它的值
# d.setdefault('car','bmw') # 如果key存在,那就不管了
# print(d)
.png)
# 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)
.png)
# 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)
.png)
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()
.png)
# 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)
.png)
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') # 里面元素不可修改
.png)
.png)
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)
.png)
# 浅拷贝
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)
.png)
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)
.png)
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)
.png)
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
.png)
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连接起来
.png)
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)
.png)
f = open('a.txt',encoding='utf-8')
result = f.read()
print(result)
f.close()
.png)
# 文件写
f = open('a.txt','w',encoding='utf-8')
f.write('你好') # 写的时候会清空原来的文件
f = open('a.txt',encoding='utf-8')
result = f.read()
print(result)
f.close()
.png)
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()
.png)
# 打开文件写绝对路径,要加: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()
.png)
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()
.png)
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)
.png)
# 关系测试
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)) # 差集
.png)
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之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
随机推荐
- C++引用与常量
常量: 在C++中有许多种数据类型(如int,float,bool等等).而这些数据类型又可以声明定义出变量与常量两种不同的具体数据.它们两种分类的标准是不一样的,是两个角度可以叠加的分类,举个栗子: ...
- Go学习笔记之Map
Go学习笔记之Map Map 引用类型,哈希表.map的key必须可以比较相等,除了slice, map, function的内建类型都可以作为key.struct类型不包含上述字段,也可作为key. ...
- Scala Operators, File & RegExp
Operators Thread.`yield`() 反引号除了用于命名标识符,还可以在调用方法时避免冲突(yield 为 Scala 关键字,但也是 Thread 的方法) 中缀运算符(infix ...
- MyEclipse部署外部引用的jar到web-inf的lib目录下
在用MyEclipse开发java web项目的时候,引入了外部jar,都是以library的形式存在左边的explore中的,调试没有问题,但是部署之后呢,经常遇到个非常头疼的问题就是,这些jar不 ...
- windows7下安装msys2
系统: windows 7 首先需要msys2的安装包,可以去官网下载安装包官网地址: http://www.msys2.org/本次下载的是 msys2-x86_64-20190524.exe 注意 ...
- [转]解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题
当运行sudo apt-get install/update/其他命令时,会出现如下提示: E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不 ...
- 【WEB基础】HTML & CSS 基础入门(10)布局与定位
块级元素和行内元素 HTML里的元素可以分为块级元素和行内元素两大类:
- element-ui Upload 上传获取当前选择的视频时长
<el-upload class="upload-demo" ref="vidos" :action="URL+'/api/post/file' ...
- 在safari上,解决fixed失效问题
一个页面中有头部.底部和中间内容区域,底部固定在屏幕底端. 头部header 内容main 底部footer 方法一.在main上使用fixed定位,加上overflow-y属性. .main { p ...
- linux 如何修改默认的FTP帐号或密码
wdlinux_lamp,wdlinux_lnmp的系统安装好后,默会创建一个FTP用户用户名是:wdlinux密码是:wdlinux.cn 如想修改密码或用户名,先找个ssh工具,有关ssh客户端的 ...