详解python中的list和array区别(深入浅出你懂!)

作者变优秀的小白

Github关注YX-XiaoBai

爱好Americano More Ice !

QQ学习交流群(new): 811792998

Python中list和array区别

什么是python中的列表(list)?

列表(list)是Python内置的数据结构,它拥有很多重要的特性

  • 列表的基本形式 -> 如[item1, item2, itme3]
  • 列表是有序的 -> 即列表中项目以特定顺序显示,使我们可使用索引来使用任何项目
  • 列表是可变的 -> 意味着你可以创建列表后进行添加或删除列元素
  • 列表元素不唯一 -> 意味着可以有相同的元素在一个列表中,每个元素有自己独立的存储空间且通过索引进行访问
  • 列表元素可以是不同的数据类型 -> 意味着你可以在一个列表中组合多种类型的元素

适用场景: 保存序列、迭代、递归

什么是python中的数组(array)?

一个数组也是一个数据结构,在Python中你使用数组的话,需要导入arrayNumPy的包

特性与列表类似:

  • 有序的
  • 可变的
  • 基本形式为方括号
  • 不唯一

注意的是!

  • Python中的数组模块需要所有数组元素都具有相同类型

举个例子:

# 指定i,表示所有元素都为int类型
array_1 = arr.array("i", [3, 6, 9, 12])
print(array_1)
print(type(array_1))

output

array('i', [3, 6, 9, 12])
<class 'array.array'>
  • NumPy不同,支持所有不同的数据类型

举个例子

array_2 = np.array(["numbers", 3, 6, 9, 12])
print (array_2)
print(type(array_2))

output

['numbers' '3' '6' '9' '12']
<class 'numpy.ndarray'>

所以,列表和数组有啥区别呢?

  • 数组需要声明,列表不用(因为是python内置的)。
  • 数组可以高效的存储数据(特别是面向大量数据时)。
  • 数组非常适合数组运算,而列表不行(报错)。

我们可以直接看看例子

  • 这是数组的
array = np.array([3, 6, 9, 12])
division = array/3
print(division)
print (type(division))

# output
[1, 2, 3, 4]
<class'numpy.ndarray'>
  • 这是列表的
list = [3, 6, 9, 12]
division = list/3

# output
TypeError                                 Traceback (most recent call last)
 in ()
      1 list = [3, 6, 9, 12]
----> 2 division = list/3

TypeError: unsupported operand type(s) for /: 'list' and 'int'

当然是可以对列表进行数值运算的(通过for循环, 效率很低)

那我们如何选择数组或列表呢?

  • 场景一: 需要存储相对较短的元素序列且不进行数值运算,使用列表
  • 场景二: 元素序列很长,使用数组。因为数组结构提供了更有效的数据结构
  • 场景三: 对元素组合进行数值计算,使用数组
结束语:如果遇到什么疑问或者建议的,可直接留言评论!作者看到会马上一一回复
如果觉得小白此文章不错或对你有所帮助,期待你的一键三连💫!❤️ni
  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,reshape函数可以用于改变数组的形状。引用提到,reshape函数的功能是改变数组或矩阵的形状。具体地说,reshape函数可以将一个二维数组转换成一个三维数组。下面是一个示例代码: ```python import numpy as np # 创建一个二维数组,形状为(4, 6) a = np.array([[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24]]) # 将二维数组a转换成一个三维数组,形状为(2, 3, 4) b = np.reshape(a, (2, 3, 4)) print(b) ``` 运行以上代码,可以看到输出的数组b形状为(2, 3, 4),表示它是一个由2个3行4列的二维数组组成的三维数组。这就是使用reshape函数将二维数组转换成三维数组的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python:reshape()函数](https://blog.csdn.net/weixin_46506757/article/details/109545799)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [pythonreshape函数用法详解](https://blog.csdn.net/change_xzt/article/details/129999062)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值