首页 > 编程语言 > 详细

Python学习之路第四天

时间:2019-11-21 18:46:48      阅读:69      评论:0      收藏:0      [点我收藏+]

列表定义

定义 list

li = [1,2,3] 每个元素逗号隔开 -- 常用
list("abc") # 迭代定义
列表是一个容器 -- 任意类型
列表是有序 -- 索引 切片 步长
列表是可变 -- 增删改查

列表操作

append 追加
insert 插入 第一个参数 索引 第二个参数 内容
extend 迭代添加 for循环
两个列表相加 就会产生一个新的列表 列表合并

pop() 弹出,默认删除最后一个 有返回值 返回的是被删除的元素,可以指定通过索引删除元素
remove() 通过元素的名字删除 从左向右删除,有同名的删除左侧的第一个
del 表名 删除整个列表
del 表名[索引] 删除指定元素 也可以定义切片和步长删除区间内容
clear() 清空 把容器的内容全部删除

         li[1] = "你好"

     切片:

         li[1:5] = "qwertyuio"

         li[1:5] = "1"

         li[1:5] = []

        切片的时候可以多,可以少,可以指定空格

        步长:

         li[1:5:2] = "你好"   迭代出来

索引,切片,步长,for循环可直接查看

补充

(可以加可以乘,可变的,不可变的公用)

  1. list.count("1"):统计出现次数
  2. list.index("1"):查看索引
  3. list.reverse( ):反转
  4. list.sort( ):排序,升序
  5. list.sort(reverse=True):排序,降序
  6. li = list("123456"):定义的方式

元祖

定义 tuple

tu = (1,2,3)或tu = (1,)都是元祖
tu = (1) 这个不是元祖 不加逗号括号中的元素是其本身

元祖的操作

元祖是有序的 他也有索引,切片,步长(和列表一样)
但是元祖是不可变数据类型

补充

(可以加可以乘,可变不可变的公用)

  1. tuple.count("3"):统计次数
  2. tuple.index("a"):查看下标

字典

定义 dict

dict -- {"key":‘value‘,"a":1}
字典也是一个容器 -- 任意类型
字典是无序的(python3.6开始变得默认有序,创建顺序)
字典的键 -- 可哈希(不可变),唯一
字典的值 -- 任意

字典的操作

增:

dic[‘键‘] = ‘值‘
dic.setdefault(‘键‘,‘‘值) -- 间不存在就添加,存在就不添加

删:

pop(‘键‘)
del dic[‘键‘]
dic clear() 清空

改:

dic[‘键‘] = ‘值‘
dic.update({‘a‘:1,‘b‘:1}) -- update(里边的级别高),会被前面的中相同的key对应的值覆盖,没有就会添加

查:

get(‘键‘,‘指定返回的内容‘) -- 不存在返回的是None,可以设置返回值
dic[‘键‘] -- 不存在就会报错
dic.setdefault[‘键‘] -- 查询

其他方法:

for i in dic:
print(i) -- 循环出来的是字典的键for i in dic.keys()这两个是一样的都是键,但是dic.keys() -- 返回的是一个高仿列表 -- 没有索引
for i in dic.values():
print(i) -- 返回的是一个高仿列表 -- 没有索引 循环出来的是值
for i in dic.items():
print(i) -- 返回的是一个高仿列表,列表里存放的是元组类型,元组第一个是键,第二个元素是值

enumerate() -- 枚举 给你要迭代对象,加一个序号 默认是从0开始,可以自己指定

补充

  1. dic = dict(k=1,k1=2)定义方式

  2. dict.popitiem( ):随机删除,python3.6默认删除最后一个键值对

  3. dict.fromkeys("123",1):批量创建字典,第一个参数是可迭代对象, 第二个参数是每个键对应的值,用的同一个内存(可变的数据类型)

集合

集合定义

se = {1,2,3}
特点:天然去重

增加

  1. s.update("3456"):迭代添加
  2. s.add("对对")

删除

  1. s.pop( ):删除第一个位置(可理解随机删除)有返回值
  2. s.remove("345"):通过元素进行删除
  3. s.clear( ):清空---返回 set()
  4. del s:删除整个集合

修改:

先删,再加

查:

for i in se:
print(i)

其他操作:

& 交集,|并集,-差集,^反交集(对称差集),>父集(超集),<子集,frozenset() 冻结集合.
s = set("1234"):定义方式,迭代添加

Bool

True 和 False

True: 1,2>1等等
False: 0,‘‘,{},[],None,set(),1=2等等

数据类型分类

有序无序

  • 有序:str,int,bool,list,tuple
  • 无序:dict,set

可变不可变

  • 可变:list,dict,set
  • 不可变:str,int,bool,tuple

取值方式

  • 直接取值:int,bool,set
  • 索引取值:list,tuple,str
  • 通过键取值:dict

数据类型转换

1.字符串转数字的时候必须全都是十进制数
2.字符串转列表: str - list:用split转换,
3.列表转字符串: list - str:用join,可迭代的对象中不能出现数字
s = ["a","b","c","d","e"]
s0 = "".join(s)

4.列表转元祖: list - tuple:直接转换
5.字典不能转换: 字典转成字符串直接转

数据类型转换的坑

问题:列表 循环删除索引的时候,要倒序删除 否则会报错,或者结果不正确.
解决:倒序删除,创建一个新的列表,存放要删除的元素,最后用for新列表删除原列表的元素

循环添加列表元素的时候,会形成死循环

字典再循环的时候不能改变字典的大小

先定义一个列表 循环列表列表删除字典

编码和解码

encode("编码集") 编码

decode("编码集") 解码

用什么编码集编码,就用什么编码集解码

Python学习之路第四天

原文:https://www.cnblogs.com/ly0123/p/11906882.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!