python学习之路(二)

本章让我们来说说python中的列表。python中的列表与c语言中的数组相似,不过在python中对于列表的操作有很多。

一.列表简介

1.列表介绍

什么是列表?列表可以用来做什么?

简单的说列表就是由一系列按特定顺序排列的元素组成,你可以将任何东西加入列表中,其中的元素可以没有任何关系,因为列表通常包含很多数据,所以一般给列表指定个复数的名称(如names,letters等)。

在python中用([ ])来表示列表,并用逗号将元素分隔开。下面就是一个简单的列表:

names = ['xiaoming','xiaohua','xiaoxiao']
print(names)
输出:['xiaoming', 'xiaohua', 'xiaoxiao']

你可以看到如果将列表打印出来时,会将整个列表给打印出来,方括号也会打印出来。

访问列表中的元素可以通过访问该元素在列表中的位置或索引就可以找到该元素,与c语言中访问数组中的元素一样,都是通过索引(下标)去访问。下面演示访问列表的第一个元素:

names = ['xiaoming','xiaohua','xiaoxiao']
print(names[0])
输出:xiaoming
可以看到通过names[0]就可以访问到列表中的第一个元素,注意这里是0而不是1,在python中第一个列表元素的索引是0而不是1,在大多数语言中都是如此.
现在假设一下,如果你要访问列表的最后一个元素,该怎么办?

你当然可以数出最后一个元素的位置,然后在访问这个元素,但如果当这个列表包含的元素有n个时呢?这种方法就明显行不通了,在python中提供了一种非常简单的访问方法,就是将索引设置为-1,例如:

names = ['xiaoming','xiaohua','xiaoxiao']
print(names[2])
print(names[-1])

输出:xiaoxiao

          xiaoxiao

这样子就可以访问列表中的最后一个元素了,当然你可以将索引设置为-2,这样就会访问倒数第二个元素了,以此类推。

2.修改,添加,删除元素
2.1修改元素

修改元素的操作很简单,首先你要确认你要修改元素的位置,然后访问这个这个元素,并将该元素的值修改为你想要的值。例如:

names = ['xiaoming','xiaohua','xiaoxiao']
names[-1] = 'A'
print(names)

输出:['xiaoming', 'xiaohua', 'A']

可以看出最后一个元素的值已经成功修改了,通过这种方法你可以修改列表中任意位置的元素。

2.2 添加元素

在python中提供了多种为现有列表添加新数据的方式,现在介绍几种。

1.在列表末尾添加元素

在列表中添加新元素时,最简单的就是在列表末尾添加新元素了。

在列表末尾添加新元素可以用append()方法,例如:

names = ['xiaoming','xiaohua','xiaoxiao']
names.append('B')
print(names)

输出:['xiaoming', 'xiaohua', 'xiaoxiao', 'B']

方法append()将新元素添加到了列表末尾,而不影响其它元素,方法append()让动态列表的创建就变动很简单了,你可以先建立一个空列表,想添加什么元素进去时,就可以用方法append(),下面是一个简单的示例:

names = []
names.append("A")
names.append('B')
names.append('C')
print(names)
输出:['A', 'B', 'C']
这样子就很简单的创建了一个动态列表了,以上就是方法append()的一些用法,具体用法可以去官方文档查看。
2.在列表中插入元素

使用方法insert()可以在列表任何位置添加新元素,但是你需要指定插入元素的位置。例如:

names = ['a','b','c']
names.insert(1,'B')
print(names)

输出:['a', 'B', 'b', 'c']

insert(插入位置,要插入的元素),这样就通过方法insert()实现了在列表的任意位置插入元素了。

2.3从列表中删除元素。
1.使用del语句删除元素。

如果知道要删除元素列表中的位置,可以使用del语句。例如:

names = ['a','b','c']
del names[0]
print(names)

输出:['b', 'c']

通过del names[0]就可以删除列表中第一个元素的值了,如果要删除列表中第二个的值,那么只要将索引0改变为1就可以了,以此类推。

但是这样删除的值是无法再访问了,例如:

names = ['a','b','c']
a = del names[0]
print(names)
print(a)
这样做是错误的,用del 删除的值是无法访问的,变量a不能指向del语句删除的值了。
2.通过方法pop()删除元素。

有时候你需要使用列表中删除的那个值时,比如网站上需要将活跃用户列表中的一个用户删除,将其放入不活跃用户中时,你就可以使用pop()方法来做了。

方法pop()可删除列表末尾的元素,并能让你接着使用它。例如:

names = ['a','b','c']
a = names.pop()
print(names)
print(a)
输出:['a', 'b']

c

现在可以看到,c已经从names列表中删除,然后将其储存在变量a中。

实际上你可以使用方法pop()来删除列表中任何位置的元素,只需要在pop后面的括号中指定要删除元素的索引即可。例如:

names = ['a','b','c']
a = names.pop(1)
print(names)
print(a)
输出:['a', 'c']

b

这样就可以通过修改索引的值来修改删除的元素了。

那我们在什么情况下使用del语句,什么情况下使用方法pop()呢?

如果你要从列表中删除一个元素,并且要使用它时,你就用pop(),当你确定你不会以任何形式使用该元素时,你就可以使用del语句。

3.通过值来删除元素。

有时候我们不知道要删除元素处于列表中的位置,只知道该元素的值,那么我们可以使用方法remove()来根据值来删除列表中的元素。例如:

names = ['a','b','c']
names.remove('c')
print(names)

输出:['a', 'b']

通过 names.remove('要删除的元素')就可删除该元素了,,不过注意,方法remove()只能删除第一个指定的值,如果列表中有多个该元素,就要通过循环来判断是否删除完了。

3.对列表进行排序。

3.1使用方法sort()对列表进行永久性排序。

例如:

names = ['a','c','b']
names.sort()
print(names)
输出:['a', 'b', 'c']
注意这里的列表中的元素都是小写的,如果夹杂着大小写会怎么样呢?试试看。
names = ['a','A','b','c','C']
names.sort()
print(names)
输出:['A', 'C', 'a', 'b', 'c']
从这里可以看出如果夹杂着大写的话,会先对大写元素进行排序,在对小写元素进行排序,这是因为方法sort()是按照ASCII码来排序的,在ASCII码中大写字母是排在小写字母前面的。
3.2使用函数sorted()对列表进行临时排序。

例如:

names = ['a','c','b',]
print(sorted(names))
print(names)

输出:['a', 'b', 'c']

['a', 'c', 'b']

从输出可以看出,调用sorted()函数只是对列表进行了临时的排序,而不是永久性的排序。如果你要按与字母顺序相反的顺序显示列表,你可以想函数sorted()传递参数reverse=True,例如:

names = ['a','c','b',]
print(sorted(names,reverse=True))
print(names)

输出:


['c', 'b', 'a']
['a', 'c', 'b']
3.3倒着打印列表。

要反转列表元素的排列顺序,可以使用方法reverse()。例如:

names = ['a','c','b',]
names.reverse()
print(names)
输出:['b', 'c', 'a']  

注意:reverse()不是按与字母顺序相反的顺序排列元素,而是反转列表元素的排列顺序。虽然方法reverse()也是永久的修改列表,但是恢复列表的初始顺序只需要再次使用reverse()方法即可。

3.4确定列表的长度。

使用函数len()可以快速获取列表的长度。例如:

names = ['a','c','b',]
print(len(names))

输出:3

通过len(列表名字)就可以快速获取该列表的长度了,len()很有用,在当你需腰统计一个列表中用户的个数时,或者其它方面。

总结:对于列表的操作还有很多,你可以在pythonIDE中使用help(list)来查看对于列表的全部操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值