1、列表 list
 
代码
 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)
 
2、列表循环
 
代码
 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('存在')
 
 
3、字典 dict
 
代码
 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)
 
4、字典循环
 
代码
 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()
 
5、【注册】
 
# 1、输入账号、密码、确认密码来注册
# 2、如果账号不存在的话,可以注册
# 3、两次密码输入一致,可以注册
 代码
 # 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)
 
 
6、切片
 
切片就是list取值的一种方式
代码
  l = [1,2,3,4,5,6,7,8,9,10] 
 
切片就是对list一个范围取值
 
 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个元素取一个,步长
 
 
7、元组
 
元组
代码
 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,1,2,3,4,5,6,7,8,9]
 
for i in l:
if i%2 != 0: # i%2 表示取偶数
l.remove(i)
print(l) # 取值为:[1, 2, 4, 6, 8] 因为取第一个元素时,“1”被删除了,第二次循环时,跳过第2个元素,从2开始
代码
 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)
 
8、浅拷贝、深拷贝
 
浅拷贝
代码
 # 浅拷贝
 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)
 
 
9、字符串常用的方法
 
代码
 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连接起来
 
10、列表生成式
 
代码
 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)
 
11、文件读写
 
1>文件 读
代码
 f = open('a.txt',encoding='utf-8')

 result = f.read()

 print(result)
 f.close()
 
2>文件写
 
代码
 # 文件写
 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  或者加双斜线:\\
代码
 # 打开文件写绝对路径,要加: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()
 
12、集合
 
 
集合天生去重
代码
 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)
 
 
 
13、关系测试
 
关系测试
代码
 # 关系测试
 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语言(二)列表、字典、集合、文件读写、关系测试的更多相关文章

  1. Python基础2 列表 字典 集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  2. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  3. 关于Python元祖,列表,字典,集合的比较

      定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...

  4. python中元组/列表/字典/集合

    转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566

  5. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  6. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  7. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  8. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  9. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

随机推荐

  1. C语言结构体的“继承”

    这里说的继承有点像C++里的父类和子类,实际上是结构体类型的强制转换,最近看Linux内核源码时经常接触到这种方法,在这里就当作是一个简单的学习吧. 下面给出一个Demo,很简单,分别定义了一个fat ...

  2. Java 在 Word 文档中使用新文本替换指定文本

    创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替 ...

  3. Grafana邮件报警

    一.概述 报警是Grafana的一项革命性功能,它让Grafana从一个数据可视化工具变成一个真正的任务监控工具.报警规则可以使用现有的图表控制面板设置,阈值可以通过拖拉右边的线控制,非常简单.Gra ...

  4. 集合单列--Colletion

    集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型 ...

  5. Linux常用命令wc

    wc名字来源: wc -- word, line, character, and byte count The wc utility displays the number of lines, wor ...

  6. 初步学习async/await,Task.GetAwaiter,Task.Result

    网上关于async/await的知识有很多,看了很多但不如自己实践一遍来得快,所以这里记录下我的理解和大家学习下. 首先以最简单的同步方法来开始如下 private static void Test( ...

  7. Git新建分支,分支合并,版本回退详解

    一.git基本命令 git拉取仓库代码 #拉取master代码 git clone git仓库地址 #拉取分支代码 git clone -b 分支名称 git仓库地址 2.git添加代码到本地仓库 g ...

  8. Phoenix连接安全模式下的HBase集群

    Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...

  9. GIT VI操作汇总

    在Git Bash Here中用命令行 pull\push\merge 代码,如果存在冲突或者自动合并时,会自动进入VI界面 1.按下 ESC 键,退出编辑模式,切换到命令模式. 2.输入 :wq , ...

  10. js/jquery键盘事件及keycode大全

    js/jquery的键盘事件分为keypress.keydown和keyup事件 一.键盘事件 1.keydown()事件当按钮被按下时,发生 keydown 事件. 2.keypress()事件ke ...