Python入门之基础知识(三)


前言

笔者刚开始学习Python。本文主要记录学习,如有错漏和不足之处,请大家指正❀。本篇主要讲述序列中的列表,同时简单介绍元祖。

一、序列是什么?

序列是一种数据存储方式,用来存储一系类的数据。
序列结构:字符串、列表、元祖、字典、集合。

二、列表的概念

列表:任意对象(任意元素、任意类型)的序列,如[10,20,30]
内存分析
列表对象常用方法的要点:增加元素、删除元素、访问元素、计数、列表长度、翻转列表、排序、浅拷贝等。
需要注意的还是,列表的大小可变,根据需要可以随时增加或缩小。

三、列表的创建

1.基本语法[]创建

a = [“linshen”,20,30]
a = [] #创建一个空的列表对象

2.list()创建

a = list()#创建一个空的列表对象

list()可以用来将任何可迭代的数据转化成列表,以a = list(“linshen”)为例,可以得到

In [1]: a = list("linshen")

In [2]: a
Out[2]: ['l', 'i', 'n', 's', 'h', 'e', 'n']

3.range()创建

标准格式为:

range([start,]end[,step])

其中,end必选,start可选,默认为0,step可选,默认为1。整数序列可以用range()和list()变成列表

4.推导式创建

推导式创建可以通过循环创建多个元素,如下所示:

In [13]: d =[x*2 for x in range(10)]

In [14]: d
Out[14]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

有时候,也可以通过if过滤元素。

四、列表元素的增加或删除

对内存进行修改,出于列表操作效率的考虑,一般只在列表尾部添加元素或删除元素。在这里介绍几种增加或删除列表元素的方法。

1.通过Append()方法增加列表元素

在尾部添加新的元素,速度最快

a = [5,2]
a.append(0)

得到a = [5,2,0]

2.通过+运算符增加列表元素

创建新的列表对象

a = [5,2]
a = a+[0]

得到a = [5,2,0]

3.通过extend()方法增加列表元素

将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。此时,列表对象的id没有变化。

In [1]: a = [5,2]

In [2]: id(a)
Out[2]: 2556694327880

In [3]: a.extend([0])

In [4]: a
Out[4]: [5, 2, 0]

In [5]: id(a)
Out[5]: 2556694327880

4.通过Insert()方法增加列表元素

用于将指定元素插入到列表对象的指定位置。
(当要处理的元素较多时,尽量避免使用)

a = [5,2,0]
a.insert(2,100)#在第二个位置插入数值100

得到a=[5,2,100,0]

5.乘法拓展增加列表元素

列表的乘法拓展和字符串的乘法原理相同。生成一个新列表,进而实现原列表元素的多次重复。

6.利用del删除列表元素

a = [5,2,0]
del a[2]

得到a=[5,2]

7.利用pop()方法删除列表元素

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

a = [10.20,30,40,50]
b=a.pop()

得到b=50a=[10,20,30,40]

8.利用remove()方法删除列表元素

可以利用remove()删除首次出现的指定元素。remove
当不存在该元素时,则会显示异常。

五、列表元素的访问和计数

这一部分的内容比较简单,具体而言,可以有下述方法:
1. 通过索引直接访问元素,索引的区间在[0,列表长度-1]
2. Index()获得指定元素在列表中首次出现的索引,语法是index(value,[start,[end]])。其中,start和end确定了搜索的范围。
3. count()获得指定元素在列表中出现的次数
4. len()返回列表的长度#即包含元素的个数
5. 成员资格判断,用in操作符可以简洁判断,偶尔也可以使用count()
in操作符
count

六、列表的切片操作

(* ̄︶ ̄)切片slice操作可以快速提取子列表或修改。
其标准格式为:
[起始偏移量start:种植偏移量end[:步长step]]。

注意:当步长省略时可以省略第二个冒号,列表的切片操作和字符串的切片基本一致。

为方便计算,选择如下实例计算:

>>> a =[10,20,30,40,50,60,70]
>>> a[1:3:1]
[20, 30]

七、列表的排序

在此,主要介绍列表排序的4种方法:

1.修改原列表

内容排列
a.sort()默认是升序排列
a.sort(reverse=True)降序排列
random.shuffle(a)打乱顺序

2.建立新列表

可以通过内置函数sorted()进行排序,这一方法并不修改原列表

>>> c = [5,2,0]
>>> id(c)
1758750284808
>>> c = sorted(c)#默认升序排列,如需降序排列可以参考上述reverse=True
>>> c
[0, 2, 5]

3.通过reversed()返回逆序排列

可以通过切片操作返回逆序,具体如下:

>>> q = reversed(c)
>>> q
<list_reverseiterator object at 0x000001997DAFEC08>
>>> list(q)
[5, 2, 0]
>>> list(q)
[]#迭代器只能迭代一次

4.其他方法

除了上述方法,涉及列表排序还有Max()、Min()、Sum()等等,在这里就不加以赘述用法了。

八、多维列表

类型数据
一维列表线性数据 [1,2,3,4,5]
二维列表二维、表格的数据

为了方便理解,我们可以将多维列表视作列表套列表。对于二维数组,可以通过a[]a[][]索引。


拓展学习——元祖

元祖属于不可变序列,元祖的访问和处理速度比列表快。元祖可以作为字典的键,列表不能作为字典的键使用。

1.元祖的创建与删除

  • 通过()创建元祖。
    小括号可以省略;当只有一个数时应加“,”,不然其type会被认定为数值(整型或浮点数型)。
  • 通过tuple()创建元祖。
    其中,可以利用tuple()将字符串、列表、其他序列类型、迭代器等生成元祖,和list()异曲同工。
  • 生成器推导式创建元祖。
    和列表推导式相似,生成器推导式生成的不是列表也不是元祖,而是一个生成器对象。下面是生成器推导式创建元祖的一个实例:
>>> s = (x*3 for x in range(9))
>>> s
<generator object <genexpr> at 0x000001997DA79CC8>
>>> tuple(s)
(0, 3, 6, 9, 12, 15, 18, 21, 24)
>>> tuple(s)
()
  • del可以删除元祖(方法与列表相似)。

2.元祖的访问、计数和排序

元祖的访问、计数和排序方法与列表基本相同。
需要注意的是,列表排序中list.sorted()可以修改原列表对象,而元祖不行。元祖只能使用sorted(tupleOjb),在此情况下会生成新的列表对象,而非元祖。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值