Python学习04(列表)

        列表是内置可变序列,是包含多个元素的有序连续的内存空间,可以存储任意数目、任意类型的数据集合,列表不可以作为字典的键。

目录

一、列表的创建

①[]创建

②list()创建

③range()创建整数列表

④推导式生成列表 

二、列表元素的增加

①append()方法

②+运算符操作

③extend()方法

④insert()插入元素

⑤乘法扩展

三、列表元素的删除

①del删除

②pop()方法

③remove()方法

四、成员资格的判断

五、切片操作(slice操作)

六、列表的遍历

七、列表的复制

八、列表排序

①修改原列表,不建新列表的排序

②建立新列表的排序

九、reversed()返回迭代器

 十、二维列表书写格式

十一、列表其他常用操作


一、列表的创建

①[]创建

a=[]

②list()创建

        用list()可将任何可迭代数据转化成列表

a=list()

③range()创建整数列表

        Python3中range返回的是range对象,可以用list来将range创建的range对象转化为整数列表对象

a=list(range(10))
print(a)
#结果为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

④推导式生成列表 

        列表推导式的方括号内包含以下内容:一个表达式,后面为一个 for 子句,然后,是零个或多个 for 或 if 子句。结果是由表达式依据 for 和 if 子句求值计算而得出一个新列表(通过if过滤元素)

'''
a=[]
for i in range(10):
    a.append(i**2)
print(a)
'''
a = [i**2 for i in range(10)]
print(a)

生成0-9的平方的列表

'''
a = []
for x in [1,2,3]:
    for y in [3,1,4]:
        if x != y:
            a.append((x, y))
print(a)
'''
a=[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(a)

生成x!=y的列表

二、列表元素的增加

①append()方法

        原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,相当于a[len(a):] = [x] 

a.append(x)

②+运算符操作

        并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中,会涉及大量的复制操作。

③extend()方法

        将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。用可迭代对象的元素扩展列表,相当于 a[len(a):] = iterable 。在list列表末尾一次性追加iterable序列中的多个值(用新列表扩展原来的列表)

a.extend(iterable)

④insert()插入元素

list.insert(i, x)

在指定位置插入元素。第一个参数是插入元素的索引
因此,a.insert(0, x) 在列表开头插入元素, a.insert(len(a), x) 等同于 a.append(x) 

⑤乘法扩展

        使用乘法扩展列表,生成一个新列表,新列表元素时原列表元素的多次重复

三、列表元素的删除

①del删除

        删除列表指定位置的元素,涉及数组的拷贝

②pop()方法

list.pop(i)

        删除列表中指定位置的元素,并返回被删除的元素
        未指定位置时,a.pop() 删除并返回列表的最后一个元素

③remove()方法

list.remove(x)

         从列表中删除第一个值为 x 的元素

四、成员资格的判断

        判断列表中是否存在指定的元素,我们可以使用count()方法,返回0则表示不存在,返回大于0则表示存在。但是,一般我们会使用更加简洁的in关键字来判断,直接返回True或False。

五、切片操作(slice操作)

        切片slice操作可以让我们快速提取子列表或修改。

a[start:end:step]

        对a切片出start到end-1,每次间隔step的子列表,切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。

六、列表的遍历

        通过for循环来进行列表的遍历

a=[1,2,3,4,5,6]
for i in a:
    print(i)
'''
结果为:
1
2
3
4
5
6

'''

七、列表的复制

        切片操作返回包含请求元素的新列表(b=a[:]是将a复制给b(浅拷贝/不完全复制),如果用b=a,相当于b是a的别名,更改b的同时也会更改a)。

        浅拷贝:拷贝父对象,不会拷贝对象的内部的子对象。列表里的子对象仍然指向统一对象

b = a.copy()

        深度拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

import copy
b=copy.deepcopy(a)

八、列表排序

①修改原列表,不建新列表的排序

list.sort(key=None, reverse=False)

        key -- 指定可迭代对象中的一个元素来进行排序,需要写一个函数进行

def takeSecond(q):
    return q[1]
list = [(2, 2), (3, 4), (4, 1), (1, 3)]
list.sort(key=takeSecond)
print(list)

        reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)

②建立新列表的排序

        用内置函数sorted()

a=[7,6,5,4,3,2,1]
a=sorted(a)
print(a)
a=sorted(a,reverse=True)
print(a)
'''
结果为:
[1, 2, 3, 4, 5, 6, 7]
[7, 6, 5, 4, 3, 2, 1]

'''

九、reversed()返回迭代器

        内置函数reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。

a=[7,6,5,4,3,2,1]
a=reversed(a)
print(a)
print(list(a))
'''
结果为:
<list_reverseiterator object at 0x0000022759D401C0>
[1, 2, 3, 4, 5, 6, 7]
'''

 十、二维列表书写格式

a=[
    [],
    [],
    []
]

十一、列表其他常用操作

max(list)

        返回列表的最大值 

min(list)

        返回列表的最小值 

sum(list)

        返回列表的元素和 

list.clear()

        删除列表里的所有元素,相当于 del a[:] 。

list.index(x,start,end)

        在list的start到end之间查找x,返回列表中第一次出现x的位置

list.count(x)

        返回列表中元素 x 出现的次数

list.reverse()

        翻转列表中的元素

len(list)

        返回列表长度 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值