Python常用语法——List(列表)部分(完善中)

1、List(列表)是什么

列表是Python中最基本、最常用的数据结构,列表的数据项不需要具有相同的类型

列表中的每个元素都分配一个数字作为它的索引,第一个索引是0,第二个索引是1,依此类推

例如:

List1=[1,2,3,”hello world”,”3.1415926”,[1,2,3]]

列表非常适合用域存储在程序运行期间可能变化的数据集,列表是可以修改的。


2、列表的构建

直接创建

List = ['wade','james','bosh','haslem']
List1 = ['Google', 'Runoob', 1997, 2000]

使用range()函数创建

将range()作为list()的参数,输出将为一个数字列表

#numbers的内容是:[1,2,3,4,5](也是左闭右开的)
numbers = list(range(1,6))

另外,range()也可以直接使用来生成一串数字

for value in range(1,5)
    print(value)

使用列表解析创建

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素

#其中**2表示平方,这行代码将生成一个1-10的平方数的列表
squares = [value**2 for value in range(1,11)]

3、获取元素方法

正向索引

类似于C语言中的数组,正向索引从0开始

#打印列表中的第二个元素()索引为1
print(bicycles[1])

逆向索引

Python为访问最后一个列表元素提供了一种特殊的语法,通过将索引指定为-1,可以让Python返回最后一个列表元素
索引-2返回倒数第二个元素,索引-3返回倒数第三个列表元素,以此类推

#打印列表的最后一个元素
print(bicycles[-1])
#打印列表倒数第三个元素
print(biclcles[-3])

切片

使用切片的方法可以获得列表中的一段数据(注意是左开右闭区间)

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
#打印索引为0,1,2,3的元素(右侧为开区间)
print(nums[0:4])
#可以使用逆向索引:打印从第一个数据(包含)到倒数第二个数据(不包含)
print(nums[0:-2])
#可以省略左边界,则表示从开头开始
print(nums[:3])
#可以省略右边界,则表示到结尾结束(结尾也包括哦)
print(nums[3:])
#当然也可以这样使用,打印后三个元素
print(nums[-3:])
#整体的切片(打印整个列表)
print(nums[:])

4、列表的复制

部分复制

使用切片截取列表的一部分进行复制

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
result = nums[-3:]

整体复制

很容易想到列表的整体复制也需要使用整体切片来完成

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
result = nums[:]

这种方法才是真正意义上的深拷贝,如果直接使用赋值号,其实是浅拷贝(相当于拷贝了指针)

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
#浅拷贝
result = nums

5、列表中添加元素

append()方法

#在列表的末尾添加元素'honda'(动态创建)
motocycles.append('honda')

extend()方法

在列表末尾一次性追加另一个序列中的多个值

#在列表的末尾连续添加序列[12,23,34]中的对象
motocycles.append([12,23,34])
#在列表List的末尾添加一个拓展列表
List.extend(tableList)

insert()方法

使用insert()方法可以在列表的任意位置添加新元素

#在列表List索引为4的位置插入元素'lewis'
List.insert(4,'lewis')

6、从列表中删除元素

使用del语句

如果知道要删除的元素在列表中的位置,可以直接使用del语句进行删除

#删除索引为2的元素
del alist[2]
#可以直接删除整个列表或者删除其中的切片
del List
del List[:3]

pop()方法

pop()方法可以删除列表末尾的元素(或任意位置的元素),并且让你能够接着使用它

#删除列表blist中的最后一个元素,并将删除的元素返回给b
b = blist.pop()
#删除指定元素,并返回
c = clist.pop(2)

remove()方法

如果你只知道要删除的元素的值,可以使用remove()方法

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.remove('Taobao')

remove()方法只删除第一个指定的值,如果要删除的值在列表中出现多次,需要用循环判断是否删除了所有的值


7、列表的排序

sort()方法——永久排序

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#永久性排序,就是这个列表就变了
nums.sort()
#默认是从小到大排序,可以传递参数将顺序反转
nums.sort(reserse = True)

sorted()函数——临时排序

注意上面的sort()叫方法,这个sorted()叫函数,其区别在于使用时的写法

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#只是此次print的时候是按照排序的顺序打印,实际的列表并没有改变
print(sorted(nums))
#也可以将顺序反转
print(sorted(nums, reserse = True))

reverse()方法——反转顺序

注意这个方法只是将当前的顺序进行反转,也不是由大到小排序,是永久性地修改顺序

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#直接倒序
nums.reverse()

8、列表的其他常见方法/函数

len()函数——返回列表长度

list_length = len(list)

max()/min函数——返回最大/最小值

list_max = max(list)
list_min = min(list)

count()方法——统计出现次数

appear_times = list.count('a')

copy()方法——列表复制

类似于a[:]

list2 = list1.copy()

9、特殊的列表——元组

不可变的列表称为元组,列表使用[]来标识,元组使用()来标识

元组的元素值不可修改

dimensions = (200,50)
#元组中的元素值不可随意修改,这一行代码将报错
dimensions[0] = 250

元组可以直接重新定义

dimensions = (200,50)
#元组整体作为一个变量可以直接重新定义并重新赋值,下面的代码是合法的
dimensions = (250,100)
posted @ 2021-08-19 19:46  Yu_tiann  阅读(862)  评论(0编辑  收藏  举报