初识Python列表

本文介绍了Python列表的基础知识,包括列表的概念、特点及操作。详细讲解了列表的初始化、基本操作,如通过'+'拼接和'*'叠加列表。还探讨了Python提供的列表工具箱,以及列表的分割和与元组的关系。
摘要由CSDN通过智能技术生成

1. 什么是Python列表

列表是Python6个序列内置类型中非常常用的数据类型之一。

2. 列表的特点

1.Python中的列表不同于java中的List一样要求类型一致,在Python中列表中的元素类型可以不一致
2.正是因为列表中元素类型可以不一致,所以Python中的列表可以嵌套使用
3.列表中每个元素都有下标,可以通过下标来获取对应的元素,并且下标以0开始,即第一个元素的下标为0
4.初始化声明一个列表的时候,元素之间用逗号隔开,并且可以以逗号结尾,也可以以元素结尾
5.列表中的元素可以修改(这个很重要,因为元组里面的元素是不可以修改的,这是重要区别之一)
6.列表长度可以增加或者减少(这就使得列表和java的数组不可扩展的特性直接区分开了,
  让误以为列表和java的数组相似的同学放弃这个想法,其实Python中的列表和js中的数组很多相似的地方,有兴趣可以深度对比一下)

3. 列表简单示例

3.1 列表初始化

list1 = ['一年级','二年级',123,456]	#列表中的类型可以不一样
list2 = ['老张','老邱',['赵老大','赵老二']] #列表可以嵌套使用
list3 = ['student1','student2',]	#初始化的时候,以逗号结尾也是允许的

3.2 列表基本操作

#FileName: example_list.py
list1 = ['一年级','二年级',123,456]

#列表中的元素通过下标使用
print('first item is : ',list1[0])	#列表下标从0开始

#通过下标对元素进行赋值操作
list1[1] = '初一'
print('After set value,the value is : ',list1[1])

#使用del删除列表执行元素
print('Before Del : ',list1)
del list1[0]	#删除第一个元素
print('After Del : ',list1)
'''
效果为:
	Before Del :  ['一年级', '初一', 123, 456]
	After Del :  ['初一', 123, 456]
'''

#获取列表长度(就如同java的数组也好、list也好都有获取长度的方法,Python也有)
len = len(list1)
print('len of list1 is : ',len)

#获取列表中最大的元素  max(listName)
#注意:max函数使用必须列表中的元素全部是数字,只要数字之间能转换,则可以使用该方法
list2 = [1,2,3,4,1.2]	#有整数和浮点数
print('max of list2 is : ',max(list2))

#获取列表中最小的元素 min(listName)
#用法和限制同 max(listName)
print('min of list2 is : ',min(list2))

3.3 列表的其他操作

列表除了上面的几个基本操作外,还提供了一些非常有用的方法、操作
3.3.1 通过 ‘+’ 拼接两个列表
list1 = ['一年级','二年级']
list2 = [1,2,3]
list3 = list1 + list2;
print(list3)
'''
输出:  ['一年级', '二年级', 1, 2, 3]
'''
3.3.2 通过 ‘*’ 叠加列表
语法:listName * times	(times为整数,times为几就叠加几次)
注意:
	1.当times = 1时,得到的结果就是列表本身
	2.当times = 0时,得到的结果将是一个空列表
	3.当times < 0时,得到的结果也是一个空列表
实际上,在使用 * 运算的时候,Python是按照times对列表进行了一个复制,复制的次数为 times >= 0 ? times : 0。
可以通过id()函数获取列表的内存地址去判断前后两个列表的内存地址是否相同来印证这个问题。
id(listName)
id(listName * 3)
list1 = [1,2]
print(list1 * 2)
'''
	打印: [1, 2, 1, 2]	
'''
3.3.3 Python提供的工具箱
1.	list.append(obj)
	在列表末尾添加新的对象
2.	list.count(obj)
	统计某个元素在列表中出现的次数
3.	list.extend(seq)
	在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4.	list.index(obj)
	从列表中找出某个值第一个匹配项的索引位置
5.	list.insert(index, obj)
	将对象插入到列表中指定的位置
6.	list.pop([index=-1])
	移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7.	list.remove(obj)
	移除列表中某个值的第一个匹配项
8.	list.reverse()
	反向列表中元素
9.	list.sort(cmp=None, key=None, reverse=False)
	对原列表进行排序
10.	list.clear()
	清空列表
11.	list.copy()
	复制列表 (这里声明一下,使用copy方法得到的列表和使用 *1 得到的结果是一样的,可以通过id() 进行对比)

3.4 列表的分割

可以使用':'对列表记性分割。语法 : list[start:end]。
其中:
	1.start和end都可以为空,分别表示从列表的最开始、到列表的最后。
	2.如果start和end同时为空,则表示全部复制列表(id方法得到的内存地址不同)
	3.如果start >= end , 则得到的列表为空
	4.start表示分割开始的元素的下标,end表示截止的位置处于列表的第几个,即end - 1 = 截止元素的下标
	  所以start = end的时候,得到的列表为空

3.5 列表和元组

元组有一个很大的特点就是不可修改,如果我们需要一个元组中的所有信息但做个别修改的时候,将元组转换为列表就变得极为重要了。
语法: list(tup)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值