《零基础学python》---第四章 序列的应用(2,列表)

列表的创建和删除

在python中提供了创建列表的方法
1.使用赋值运算符直接创建列表
创建列表时,可以使用赋值运算符“=”直接将一个列表赋值给变量,语法格式如下:

listname = [element 1,element 2,element 3,...,element n]

在使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但是通常情况下,我们不这样做,而是在一个列表中只放入一种类型的数据。这样可以提高程序的可读性。
2.创建空列表
在python中,可以创建空列表,例如、创建空列表,可以使用下面代码:

emptylist = []

3.创建数值列表
在python中,可以使用list()函数直接将range()函数循环出来的结果转换为列表。
list()函数的基本语法:

list(data)

data表示可以转换为列表的数据。

>>> list(range(10,20,2))

结果:[10, 12, 14, 16, 18]

访问列表元素

在python中,如果想将列表的内容输出也比较简单,可以直接使用peint()函数即可

>>> untitle = ['python',28,"人生苦短",[1,2]]
>>> print(untitle)
['python', 28, '人生苦短', [1, 2]]
>>> print(untitle[2])
人生苦短
>>> 

遍历列表

在python中遍历列表的方法有多种,下面介绍两种常用的方法。
1.直接使用for循环实现
直接使用for循环遍历列表,只能输出元素的值,语法格式如下:

untitle = ['python',28,"人生苦短",[1,2]]
for item in untitle:
	print(item)

结果:

python
28
人生苦短
[1, 2]

2.使用for循环和enumerate()函数实现
使用for循环和enumerate()函数可以实现同时输出索引值和元素内容,语法格式如下:

>>> untitle = ['python',28,"人生苦短",[1,2]]
>>> for index, item in enumerate(untitle):
	      print(index+1,item)

index:用于保存元素的索引。
item:用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可。
untitle:为列表名称。
结果:

1 python
2 28
3 人生苦短
4 [1, 2]

添加、修改和删除列表元素

添加、修改和删除列表元素也称更新列表。
1.添加列表
可以通过“+”号将两个序列连接,通过该方法实现列表添加元素。这种方法的执行速度要比直接使用列表对象的append()慢。
列表对象的append()方法用于在列表的末尾追加元素,语法格式如下:

listname.append(obj)

listname为要添加元素的列表名称,obj为要添加到列表末尾的对象。

>>>untitle = ['python',28,"人生苦短",[1,2]]
>>> untitle.append("asd")
>>> print(untitle)

结果:

['python', 28, '人生苦短', [1, 2], 'asd']

如果想要将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend()方法实现。

>>> oldlist = [1,2,3,4]
>>> newlist = ["a","s","d"]
>>> oldlist.extend(newlist)
>>> print(oldlist)

结果:

[1, 2, 3, 4, 'a', 's', 'd']

2.修改元素
修改列表元素只需要通过索引获取该元素,然后再为其重新赋值即可。

>>> verse = ["长亭外","古道边","芳草碧连天"]
>>> verse[2] = "一行白鹭上青天"                   #修改列表第3个元素
>>> print(verse)

结果:

['长亭外', '古道边', '一行白鹭上青天']

3.删除元素
删除元素主要有两种情况,一种是根据索引删除,另一种是根据元素值进行删除
根据索引删除
删除列表中的指定元素和删除列表类似,也可以使用del语句实现。所不同的就是在指定列表名称时,换为列表元素。

>>> verse = ["长亭外","古道边","芳草碧连天"]
>>> del verse[-1]
>>> print(verse)

结果:['长亭外', '古道边']
根据元素值删除
如果删除一个不确定其位置的元素,可以使用列表对象的remove()方法实现。

>>> number1 = [1,3,5,7,9]
>>> number2 = 2                       #指定要移除的元素
>>> if  number1.count( number2)>0:    #判断要删除的元素是否存在
	number1.remove( number2)          #移除指定的元素

	
>>> print( number1 )
[1, 3, 5, 7, 9]
>>> number2 = 3                       #指定要移除的元素
>>> if  number1.count( number2)>0:    #判断要删除的元素是否存在
	number1.remove( number2)          #移除指定的元素

	
>>> print( number1 )
[1, 5, 7, 9]

对列表进行统计和计算

1.获取指定元素出现的次数
使用列表对象的count()方法可以获取指定元素在列表中出现次数。基本语法格式如下:

listname.count(obj)

listname:表示列表的名称
obj:表示要判断是否存在的对象,这里只能进行精准匹配,即不能是元素值得一部分。

>>> number = [1,3,5,1,1,7,9]
>>> number.count(1)

结果:3
2.获取指定元素首次出现的下标
使用列表对象的index()方法可以获取指定元素在列表中首次出现的位置(即索引)。语法格式如下:

listname.index(obj)

listname:表示列表的名称
obj:表示要查找的对象,这里只能进行精准匹配。如果指定的对象不存在时,则显示异常。

>>> number = [1,3,5,1,1,7,9]
>>> number.index(1)

结果:0
3.统计数值列表的元素和
在python中,提供了sum()函数用于统计数值列表中各元素的和。

>>> number = [1,3,5,1,1,7,9]
>>> total=sum(number)
>>> print(total)

结果:27

对列表进行排序

python提供了两种常用的对列表进行排序的方法:使用列表对象的sort()方法,使用内置的sorted()函数。
1.使用列表对象的sort()方法
语法格式如下:

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

listname:表示要进行排序的列表。
key:表示指定从每一个元素中提取一个用于比较的健(例如,设置“key=str.lower”表示在排序时不区分字母大小写)。
reverse:可选参数,如果将其指定为Ture,则表示降序排列;如果为False,则表示升序排列,默认为升序排列。

>>> grade = [98,99,97,100,100,96,94,89,95,100]
>>> print("原列表:",grade)
原列表: [98, 99, 97, 100, 100, 96, 94, 89, 95, 100]
>>> grade.sort()                                     #进行升序排列
>>> print("升 序:",grade)
升 序: [89, 94, 95, 96, 97, 98, 99, 100, 100, 100]
>>> grade.sort(reverse=True)                          #进行降序排列
>>> print("降 序:",grade)
降 序: [100, 100, 100, 99, 98, 97, 96, 95, 94, 89]
>>> char = ['cat','Tom','Angela','pet']
>>> char.sort()                                     #默认区分字母大小写
>>> print("区分字母大小写:",char)
区分字母大小写: ['Angela', 'Tom', 'cat', 'pet']
>>> char.sort(key=str.lower)                         #不区分字母大小写
>>> print("不区分字母大小写:",char)
不区分字母大小写: ['Angela', 'cat', 'pet', 'Tom']

2.使用内置的sorted()函数实现
在python中提供了一个内置的sorted()函数,用于对列表进行排序。使用sorted()函数进行排序后,元列表的顺序不变。sorted()函数的语法格式如下:

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

iterable:表示要进行排序的列表。
key:表示指定从每一个元素中提取一个用于比较的健(例如,设置“key=str.lower”表示在排序时不区分字母大小写)。
reverse:可选参数,如果将其指定为Ture,则表示降序排列;如果为False,则表示升序排列,默认为升序排列。

>>> grade = [98,99,97,100,100,96,94,89,95,100]
>>> grade_as = sorted(grade)
>>> print("升序:",grade_as)
升序: [89, 94, 95, 96, 97, 98, 99, 100, 100, 100]
>>> grade_des = sort(grade,reverse=True)
>>> grade_des = sorted(grade,reverse=True)
>>> print("降 序:",grade_des)
降 序: [100, 100, 100, 99, 98, 97, 96, 95, 94, 89]
>>> print("原序列:",grade)
原序列: [98, 99, 97, 100, 100, 96, 94, 89, 95, 100]

列表推导式

列表推导式通常有以下几种常用的语法格式。
(1)生成指定范围的数值列表,语法格式如下:

list = [Expression for var in range]

list:表示生成的列表名称。
Expression:表达式,用于计算新列表的元素。
var:循环变量。
range:采用range()函数生成的range对象。
生成10个随机数的列表,要求数的范围在10~100之间,代码如下:

>>> import random                                              #导入random标准库
>>> randomnumbber = [random.randint(10,100) for i in range(10)]
>>> print(randomnumbber)
[24, 79, 62, 74, 92, 33, 29, 75, 26, 48]

(2)根据列表生成指定需求的列表,语法格式如下:

newlist = [Expression for var in list]

newlist :表示新生成的列表名称。
Expression:表达式,用于计算新列表的元素。
var:变量,值为后面列表的每一个元素值。
list:用于生成新列表的原列表。

>>> price = [2,6,4,56,8]
>>> sale = [int(x*0.5) for x in price]
>>> print("原价格",price)
原价格 [2,6,4,56,8]
>>> print("打五折的价格",sale)
打五折的价格 [1, 3, 2, 28, 4]

(3)从列表中选择符合条件的元素组成新的列表,语法如下:

newlist = [Expression for var in list if condition]

newlist :表示新生成的列表名称。
Expression:表达式,用于计算新列表的元素。
var:变量,值为后面列表的每一个元素值。
list:用于生成新列表的原列表。
condition:条件表达式,用于指定筛选条件。

>>> price = [2,6,4,56,8]
>>> sale = [x for x in price if x>10]
>>> print("价格高于10的",sale)
价格高于10的 [56]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值