列表 vs 数组
列表,看到列表相关功能描述, 不免想起数组。
带着疑问,敲下In Python, what is difference between Array and List?
查了下,python自带list功能,不过array需要导入相关包来支持。
case1:
cloud_Company = [‘Amazon’,‘Huawei’,‘Alicloud’]
print(cloud_Company)
[‘Amazon’, ‘Huawei’, ‘Alicloud’]
/* 在python中用[]来表示列表 ,用逗号分隔其他的元素*/
case2:
a = [2,4,6,8]
a = a/2
Traceback (most recent call last):
File “”, line 1, in
TypeError: unsupported operand type(s) for /: ‘list’ and ‘int’
列不支持数学运算。需要插入numpy中的array包来支持。
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
提前安装numpy拓展库:
EthanNideMacBook-Pro:~ candy$ pip3 install numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/f0/14/f71a89e03578084111e352f464d9f3b7f701ebbecbd1a60e89c96983ef77/numpy-1.18.0-cp37-cp37m-macosx_10_9_x86_64.whl (15.1MB)
|██████████████ | 6.7MB 7.4kB/s eta 0:18:59
测试:
from numpy import array
a = array([2,4,6,8])
b = a/2
print(b)
[1. 2. 3. 4.]
//数组array需要声明,list不需要。
题外:
python中的list是python的内置数据类型,list中的数据类不必相同的,
而array的中的类型必须全部相同。
python本身并没有数组类型,但是他的numpy库中有数组类型.
列表的用法:
访问列表元素
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
print(cloud_company[0])
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘cloud_company’ is not definedprint(cloud_Company[0])
Amazonprint(cloud_Company[1])
Huaweiprint(cloud_Company[-1])
Alicloud
上面可以看出索引是0开头,-1表示最后一个item。比较common的concept。
样例:
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
message = “The most popular cloud company is " + cloud_Company[0].title()+”."
print(message)
The most popular cloud company is Amazon.
//.title()表示该item首字母大写显示。
列表的修改,添加,删除操作
添加:
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
cloud_Company[0] = ‘Baidu’
print(cloud_Company)
[‘Baidu’, ‘huawei’, ‘alicloud’]cloud_Company.append(‘Microsoft’)
//末尾添加print(cloud_Company)
[‘Baidu’, ‘huawei’, ‘alicloud’, ‘Microsoft’]cloud_Company.insert(0,‘Amazon’)
//指定位置插入添加print(cloud_Company)
[‘Amazon’, ‘Baidu’, ‘huawei’, ‘alicloud’, ‘Microsoft’]
删除:
Del:
cloud_Company = [‘Amazon’, ‘Baidu’, ‘huawei’, ‘alicloud’, ‘Microsoft’]
del cloud_Company[0]
//指定索引位置删除print(cloud_Company)
[‘Baidu’, ‘huawei’, ‘alicloud’, ‘Microsoft’]
Pop():
print(cloud_Company)
[‘Baidu’, ‘huawei’, ‘alicloud’, ‘Microsoft’]popped_cloud_Company = cloud_Company.pop()
//将list中最后一个value删除,不过接着使用。print(cloud_Company)
[‘Baidu’, ‘huawei’, ‘alicloud’]print(popped_cloud_Company)
Microsoft
//暂时print(“The second rank cloud company is “+cloud_Company.pop()+”.”
… )
The second rank cloud company is alicloud.
//继续去掉alicloudprint(“The second rank cloud company is “+cloud_Company.pop()+”.” )
The second rank cloud company is huawei.
//继续去掉huaweiprint(“The second rank cloud company is “+cloud_Company.pop()+”.” )
The second rank cloud company is Baidu.
//去掉百度,下面list就为空了。print(cloud_Company)
[]
指定位置pop
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
most_Popular_cloud_company = cloud_Company.pop(0)
//pop第一个元素print(cloud_Company)
[‘huawei’, ‘alicloud’]print(“The most popular cloud company is “+most_Popular_cloud_company.title()+”.”)
The most popular cloud company is Amazon.
remove()
根据元素的值
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
print(cloud_Company)
[‘amazon’, ‘huawei’, ‘alicloud’]cloud_Company.remove(‘amazon’)
print(cloud_Company)
[‘huawei’, ‘alicloud’]
remove()只删除第一个指定的值。要删掉所有需要调用循环语句
初略总结:删除以后不使用的话使用del,不过pop删除还能继续使用,
remove删掉list中出现的第一个参数匹配值。
比如cloud_Company中有两个huawei,remove的话只会删除第一个huawei
排序:
cloud_Company = [‘amazon’,‘huawei’,‘alicloud’]
cloud_Company.sort()
//sort()排序,永久改变list中元素的顺序print(cloud_Company)
[‘alicloud’, ‘amazon’, ‘huawei’]cloud_Company.sort(reverse=True)
//逆向排序print(cloud_Company)
[‘huawei’, ‘amazon’, ‘alicloud’]print(sorted(cloud_Company))
//临时排序,不改变实际存储顺序
[‘alicloud’, ‘amazon’, ‘huawei’]cloud_Company.reverse()
//反转,把顺序左右互调print(cloud_Company)
[‘alicloud’, ‘amazon’, ‘huawei’]len(cloud_Company)
3
//计算list的长度
本文探讨Python中的列表和数组的区别,指出Python的list不支持数学运算,需要使用numpy的array。接着介绍列表的基本操作,包括访问元素、修改、添加和删除。还展示了如何通过索引、append、insert、del、pop以及remove方法操作列表,并讨论了排序方法。
3414

被折叠的 条评论
为什么被折叠?



