Python基础(二)

Hello,这一期我们把Python的三个常用的基础数据结构之一的List讲一下(具体来说应该是四个,set也算一个),把数据结构讲完后,下期就开始讲控制语句了,有了控制语句,基本的逻辑代码就可以敲起来了。

注:小编所介绍到的知识都是Python3.0的版本。

640?wx_fmt=jpeg


                                      List列表

List属于Python的6个基本序列之一,它有着序列的通用特性,包括索引,切片,加法,乘法,长度,检查成员等。list数据结构基本标志是'[ ]',它的成员都是在中括号里面的,例如:

list1=['java','python','C++','typescript','HTML']

这边是一个列表,列表里面的元素可以由各种元素组成,数字,字符串,列表等。他们可以混合存在,就是说,一个列表里面可以同时存在列表,字符串和数字。他们之间互不影响。例如:

list2=[list1,'helloworld',25.55,[1,2,3]]

执行输出:print (list2)

PS D:\johnturingwu> python D:\johnturingwu\test.py

[['java', 'python', 'C++', 'typescript', 'HTML'], 'helloworld', 25.55, [1, 2, 3]]

从这里我们也可以看出,列表其实就相当于一个仓库,它里面能存放好多数据,所以一般遇到定义多个数据的时候,我们就可以通过一个list来解决问题。


1、访问列表中的值

我们刚学会了定义一个list,现在我们要从list中把需要的值取出来该怎么取呢?

很简单,通过下标取值即可。

在list中,每个元素都有自己的下标,他们从前至后是有序的,从0开始计数,到最后一个结束,一般取下标的时候我们需要用中括号括起来,就像这样:list1[0],list1[1],list1[2].....

当然,除了这样计数,我们还有另一种计数方法,倒过来计数:从后至前数,最后一个也就是倒数第一个,它的下标是-1,依次往前数,就像这样:list1[-1],list[-2],list[-3].....

测试:

print (list1[0],list1[-1])

输出:java HTML

以上便是通过下标访问单个元素的方式。


那么问题来了,要是我们需要回去大量连续的元素数据,那应该怎么办?

难道还需要list[1],list[2],list[3]....这样一直写下去吗?

答案当然不是的,我们可以通过切片来获取元素。如何进行切片呢?下面小编就来介绍一下。

切片,顾名思义,就是从整个list中选择某一个区间的元素,我们是通过在中括号中加第二个参数,来完成切片的。两个数字之间" : "进行连接,例子如下:

list1[0:3]

这就是对list1进行切片,获取前3个元素的值。(第一个元素的下标为0),来看一下例子的输出结果:

list1=['java','python','C++','typescript','HTML']

print(list1[0:3])

输出:

['java', 'python', 'C++']


有同学开始问了:这里不是截取了0-3四个元素吗,结果应该是四个啊?怎么输出只有三个?

这里小编要讲一下,使用切片时有一点要注意:切片的两个参数,是第一个参数的值可以取的到,但第二个参数的值就取不到了,用数学用来说就是左闭右开区间【数学表示法 [0,3)】,能取的到0(第一个元素),取不到3(第四个元素)。


那有的同学又开始问了:切片时候选的数字能不能倒过来数,从-1开始往前数?

答案当然是可以的。你觉得怎么方便怎么来,但是有一点要注意一下,次序不能乱,要注意下标的顺序,我们来举个具体的例子:

print(list1[-1:-3])

输出:

[]


print(list1[-3:-1])

输出:

['C++', 'typescript']

从中我们我们看出,如果截取的次序颠倒,我们就拿不到我们想要的值,只能得到一个空列表。 这里我们也看到了,最后一个值没有被取到。那有什么方法能娶到最后一个值呢,答案有两个:

list[-3:5]        第二个参数的值取列表最后一个元素的下标

list[-3:]          冒号后面省略不写,系统默认取到最后一个元素


2、更新列表中的值

刚刚我们学会了访问列表中的值,那列表中的值我们怎么去修改呢?

很简单,指定你想修改元素的下标,在给它赋值即可,我们可以看看这个例子:

list1=['java','python','C++','typescript','HTML']

list1[0]='PHP'       #第一个元素换成PHP

print(list1)

输出:

['PHP', 'python', 'C++', 'typescript', 'HTML']


list1=['java','python','C++','typescript','HTML']

list1[0:3]=['Python']   #把前三个元素用Python代替

print(list1)

输出:

['Python', 'typescript', 'HTML']


3、删除列表中的值

列表中的值可以通过del语句进行删除

del list1[2]

输出:

['java', 'python', 'typescript', 'HTML']


del也可以删除整个list

del list1

此时整个list1都被删除了

再次打印list1会报错:

Traceback (most recent call last):

  File "C:\Users\yuqing.wu\Desktop\qaaa\test.py", line 3, in <module>

    print(list1)

NameError: name 'list1' is not defined


4、list的函数

关于list,有一些自己的函数,这边我们介绍四个常用的函数:

a.len()函数:返回列表的长度

   len(list1)

   输出:

_> 5

b.max()函数:返回列表中的最大值(按asc码大小排序)

   max(list1)

   输出:

typescript

c.min()函数:返回列表中的最小值

   min(list1)

  输出:

_> C++

d.list()函数:将一个其他序列转化list

   string="hello"

   print(list(string))

   输出:

_> ['h', 'e', 'l', 'l', 'o']


5、list的方法

list有很多自己的内置方法,这边我们来看看一些常用的方法。

list.append(obj)

用来在列表中添加对象的

list1=['java','python','C++','typescript','HTML']

a='php'

list1.append(a)

print(list1)

_> ['java', 'python', 'C++', 'typescript', 'HTML', 'php']


list.count(obj)

用来统计某个元素在列表中出现的次数

list2=[1,2,4,5,6,3,2,1,2,1,5,1,2,1,2,1,3]

print(list2.count(1))

输出:

_> 6    

代表元素1出现了6次


list.extend(seq)

在列表中添加新的列表中的元素,参数传入的是一个序列

list1=['java','python','C++','typescript','HTML']

list2=['PHP','R','Ruby','swfit']

list1.extend(list2)

print(list1)

输出:

_> ['java', 'python', 'C++', 'typescript', 'HTML', 'PHP', 'R', 'Ruby', 'swfit']

如果这里用append方法,它则是将list2嵌套在list1中:

list1.append(list2)

print(list1)

输出:

_> ['java', 'python', 'C++', 'typescript', 'HTML', ['PHP', 'R', 'Ruby', 'swfit']]


list.pop()

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list1=['java','python','C++','typescript','HTML']

print(list1.pop())

print(list1)

输出:

_> HTML
['java', 'python', 'C++', 'typescript']


list.clear()

用来请空列表

list1=['java','python','C++','typescript','HTML']

list1.clear()

print(list1)

输出:

_> []


list.reverse()

将列表中的元素倒过来排

list1=['java','python','C++','typescript','HTML']

list1.reverse()

print(list1)

输出:

_> ['HTML', 'typescript', 'C++', 'python', 'java']


list.sort()

对列表进行排序,按照asc码排列的顺序

list1=['java','python','C++','typescript','HTML']

list2=[1,2,4,5,6,3,2,1,2,1,5,1,11,3]

list1.sort()

list2.sort()

print(list1)

print(list2)

输出:

_> ['C++', 'HTML', 'java', 'python', 'typescript']
[1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 11]


今天关于列表的知识就讲到这里了。

下期再见。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值