Python基础精进 - Day3

列表是用于存储任意数目、任意类型的数据集合。

1. 列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义的标准语法格式: a = [10,20,30,40] ,其中,10,20,30,40 这些称为:列表 a 的元素。
2. 列表中的元素可以各不相同,可以是任意类型。比如: a = [10,20,'abc',True]
3. 列表用 '[]' 表示, 使用 list()可以将任何可迭代的数据转化成列表。
4. range(start, end, step)可以用于创建整数列表。

列表生成式 (常用于填充指定值的列表)

[元素        for循环        if语句(可省略)]

e.g.

x = [int(input()) for i in range(4)]
print(x) #读取四个用户输入的整数并按列表打印

 常用的列表方法

1. append()方法,在列表尾部添加新的元素

2. ”+“,拼接操作,新创建一个列表对象,但效率降低

e.g. a = [20, 30]+[True]

3. extend(list),拼接操作,在原地修改

4. insert(idx, obj),使用 insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度

5. 元素的删除(本质是数组拷贝):

        del语句,del a[1]

        pop(idx)函数, pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。

        remove(obj)函数,删除首次出现的指定元素,若不存在该元素抛出异常。

6. 元素的访问可以用索引;也可以用index(obj, start, end)返回列表中制定区间内首次出现开元素的下标,如果不存在则抛出异常。

7. count()可以返回指定元素在列表中出现的次数,len()返回列表长度

8. "in"和切片用法同字符串

9. 列表排序:

        list.sort():修改原列表,不建新列表的排序,默认升序,reverse = True则是降序

        sorted(list):返回新列表,不对原列表做修改,key参数可以制定排序方法,可用lambda表达式。

补充:sorted()函数用法

sorted() 作为 Python 内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。其中key参数常与字典连用,制定排序的方法。

sorted()函数的基本语法如下:

list = sorted(iterable, key=None, reverse=False)  

10. reverse() 也支持进行逆序排列,与列表对象 reverse()方法不同的是,内置函数

reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象
a = [10, 2, 3, 42, 34]
c = reversed(a)
print(c) #<list_reverseiterator object at 0x00000255C03075F8>
print(list(c)) #[34, 42, 3, 2, 10]
print(list(c)) #[] 因为迭代对象 在第一次时已经遍历结束了,第二次不能再使用。

11. max(obj), min(obj), sum(obj) 传入可迭代对象

元组

元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
1. 创建元组
可以使用小括号或者tuple()方法创建元组。
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。
2. 元组的排序
使用内置函数sorted(tuple),生成有序列表,再转换成新的元组
a = (10, 2, 3, 42, 34)
b = tuple(sorted(a))
print(b)

3. zip(列表 1,列表 2,...)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。

a = [10,20,30]
b = [40,50,60]
c = [70,80,90]
d = zip(a,b,c)
print(d) #<zip object at 0x000002AA9B430108>
print(list(d)) #[(10, 40, 70), (20, 50, 80), (30, 60, 90)]

 生成器推导式

        从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推
导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
        我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__()
方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如
果需要重新访问其中的元素,必须重新创建该生成器对象。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值