第一阶段 -- python基础:【list、tuple、dict、set、zip()函数】

  1. 序列:字符串、列表、元祖、字典、集合

1. 列表list:可以存储任意数据类型

  1. 常用的列表方法:在这里插入图片描述

  2. 列表的创建:
    方法一:[ ]创建

    a = [1,2,"a",True]
    

    方法二:list()创建:

    list(range(1,11,2))
    

    方法三:range()创建整数列表

    a= range(0,10,2)
    	list(a)
    

    方法四:推导式生成 list

    a = [x*2 for x in range(5)]
    
  3. 列表元素的增加和删除:
    a.append(80): 在列表末尾添加80,该方法速度最快,推荐使用!
    a.extend([1,2,3]): 在列表末尾添加[1,2,3]这个列表。
    a.insert(2,100) : 在2这个位置上插入100
    del a[1] : 删除列表a中位置1的元素
    a.pop(1): 删除位置为1的元素,并返回该删除元素
    a.remove(100): 删除首次出现的指定元素。

  4. 元素的索引:

    # 语法:
    seq[start:end:step]
    # 例子:
    seq=[1,2,3,4,5]
    seq=[::-1]  # 结果:[5, 4, 3, 2, 1]
    
    • a[1][2]: 多维数组的索引
    • list.index(x[, start[, end]])index()函数用于从列表中找出某个值第一个匹配项的索引位置。
  5. 内置函数sorted()进行排序:sorted(a)
    或者 b.sort()

  6. reversed()返回迭代器: 第一次输出元素,第二次为空。

2. 元组tuple: 不能删,不能改,其他和列表相似。

  1. 元组特点:不可变序列;处理速度逼列表快;元组可以作为字典的键,但是列表不可以作为字典的键。
  2. . zip(元组1, 元组2…):
    a = [1,2,3,4]
    b = [10,20,30]
    c = zip(a,b)
    d = tuple(c)
  3. 生成器:从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。list推导式直接生成list对象,生成器推导式生成的不是list也不是tuple,而是一个生成器对象。
    b = (x*2 for x in range(0,15,1))
    tuple(b)
  4. 元组核心特点:不可变序列;处理和访问速度比列表快;元组可以作为字典的键,列表不可以。

3. 字典dict:

菜鸟教程 – 字典 https://www.runoob.com/python3/python3-dictionary.html

  • 键(Key)必须是唯一的,但值(value)则不必。

  • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

例如:在这里插入图片描述

  1. 字典的创建:

    方式一:通过 {}、dict() 创建字典对象

     a = {"name":"狗子", "age": 18, "city":"北京"}
     b = dict(name="狗子", age=18, city="北京")
     c = dict([("name", "狗子"), ("age", 18)])
    

    方拾二:通过zip()创建字典对象

     keys = ["name", "age", "job"]
     values = ["狗子",18, "程序员"]
     d = dict(zip(keys, values))
    

    方法三:通过 fromkeys() 创建值为空的字典

    a = dict.fromkeys(["name", "age", "job"])
    a
    
  2. 字典元素的访问:

    方式一:

    a = {"name": "狗子", "age": 18, "job": "程序员"}
    a["name"]
    

    方拾二:通过 get() 方法获得“值”

    a.get("name")
    a.get("gender", "男") # 若不存在值,可以返回默认对象
    
  • 获得所有的键值对、键、值:
    a.items()
    a.keys()
    a.values()
  • 检测一个键是否在字典中:
    "name" in a
  1. 字典元素的添加,修改,删除:
    a["age"] = 22
    a.update(b): 把字典对象b所有的键值对全部添加到a字典对象上,如果key有重复,则直接覆盖。
    del(a["name"])
    a.clear():删除字典a中的所有键值对。
    a.pop("age"):删除指定的键值对,并返回对应的“值对象”。
    popitem():随机删除和返回该键值对。

4. 集合:集合中的元素不可重复。

  1. a = {1,2,3,4,5}; b = {3,4,5,6,7}
  2. a.add(9)
  3. a.remove(5)
  4. a.union(b)
  5. a.intersection(b)
  6. a.difference(b)

5. zip()函数

  1. zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
    我们可以使用 list() 转换来输出列表。
    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
  2. zip 语法:
    zip([iterable, ...])
  3. 返回值:返回了一个对象
  4. 示例:
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
 
>>> a1, a2 = zip(*zip(a,b))          # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]

5.1. zip() 例子

在这里插入图片描述

在这里插入图片描述
注意: zip() 对象使用完,就被清理了,再被调用,输出结果为空!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值