在学习python过程中,经常被这些东西所困扰,在我的角度,总感觉它们是一样的,都是元素的组合,但它们的格式是不一样的,有时候需要数组时,给出了一个列表,这次对这些问题做一个梳理,也是记录一下Python学习的过程。
参考链接:
谈谈Python中列表、元组和数组的区别和骚操作 – 知乎 (zhihu.com)
python模块:array数组模块 – yescarf – 博客园 (cnblogs.com)
Python中的数组–什么是Python数组以及如何使用它们?-云社区-华为云 (huaweicloud.com)
列表(List)
最开始接触的应该是 “列表” 这个概念。
# 列表的使用(定义与引用) # 最基础的方法 list_test = [1, 2, 3] print(list_test[0]) message = f"hello, the output is {list_test[0]}" print(message) # 输出: # 1 # hello, the output is 1 # 列表的添加与删除 # 在末尾插入新的元素 4 list_test = [1, 2, 3, 4] list_test.append(4) # 在指定位置插入,在第1个元素后插入4 list_test.insert(1,4) # 列表的删除(del/pop/remove) list_test = [1, 2, 3] del list_test[0] list_test = [1, 2, 3] aaa = list_test.pop(0) # 相较于del,pop会将要除去的值弹出,当需要删除的值需要用时可以使用 list_test = [1, 2, 3] list_test.remove(1) # 列表批量的一些处理方法 number = list(range(1, 6)) # 输出:[1, 2, 3, 4, 5] number1 = list(range(2, 12, 2)) # 输出:[2, 4, 6, 8, 10] # 直接接括号就是创建空列表,之后接循环语句可以创造想要的列表 number3 = [] for value in range(1, 11): number3.append(value**2) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
以上便是 “列表” 相关的知识,那么会有一些疑问,列表是否可以以非元素的方式进行计算?以及列表是否可以批量赋值?这里进行一下尝试。
list_test1 = [1, 2, 3] list_test2 = [2, 3, 4] list_test3 = list_test2 + list_test1 print(list_test3) # 输出: [2, 3, 4, 1, 2, 3] # 列表的加减是元素的增添,不是对应元素的加减 # 想要实现列表对应元素的加减,最简单使用循环语句 list_test3 = [] for i in range(len(list_test1)): list_test3.append(list_test1[i] + list_test2[i]) print(list_test3) # 当然还可以利用numpy中的函数,那个是之后的内容
元组(Tuple)
元组与列表是及其相似的,只不过元组的值不可以单独修改。
number = (1, 2) print(number[1]) # 元组可以整体重新赋值,但不可单个元素操作
数组
list是python中内置数据类型,list中可以包含不同类型的数据,list中存放的是数据存放的指针,并非数据,其形状不需要预先定义(其实就是个一维的,所谓的多维是嵌套的作用),而数组在使用前是需要进行大小的定义,在python 中并没有内置数组模块,而是提供了array模块,但平常用得更多的还是numpy中的ndarray,然后需要注意的是array()是指numpy中的一个函数,而ndarray是指其类型为多为数组对象。
import numpy as np a = np.array([[1, 1, 1], [2, 2, 2]]) print(a) # 输出: # [[1 1 1] # [2 2 2]] # 需要注意到,数组中元素之间是不用逗号分开的 b = type(a) print(b) # 输出: # <class 'numpy.ndarray'> c = 1.0 d = type(c) print(d) # 输出: # <class 'numpy.ndarray'>
数组的加减就是我们常规理解的加减,如下:
import numpy as np a = np.array([[1, 1, 1], [2, 2, 2]]) b = np.array([[1, 1, 1], [2, 2, 2]]) c = a + b print(c) # 输出: # [[2 2 2] # [4 4 4]]
数组的使用和列表类似,其与列表之间的转换如下:
import numpy as np a = np.array([[1, 1, 1], [2, 2, 2]]) b = a.tolist() print(b) # 输出: # [[1, 1, 1], [2, 2, 2]] c = np.array(b) print(c) # 输出 # [[1 1 1] # [2 2 2]]
评论
还没有任何评论,你来说两句吧!