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)