Golang与Python 数组和切片

本文探讨了Golang和Python中的数组与切片概念。在Python中,list和切片提供了灵活的数据操作,而Golang的数组和切片则有所不同。切片在Golang中描述了底层数组的一部分,更改切片会影响到底层数组,且多个切片可能共享同一个底层数组。

背景

第一次接触到数组和切片的概念是在Python中。Python极其强大的切片操作,让我自然而然的面对Golang时,直接生搬硬套进去了。然后发现在一些场景下的结果不及预期,所以就好好查了一下,Golang的切片底层实现。

数组与切片

什么是数组(Array)?

在计算机科学中,数组数据结构(英语:array data structure),简称数组(英语:Array),是由相同类型的元素(element)的集合所组成的数据结构,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素对应的存储地址。 维基百科

什么是切片(Slice)?

在计算机编程中,数组切片是一种从数组中提取元素子集并将其打包为另一个数组的操作,可能与原始数组的维数不同。数组切片的常见示例是从字符串中提取子字符串,“ hello”中的“ ell”,从二维数组中提取行或列,或者从矩阵中提取向量。根据编程语言的不同,数组切片可以由非连续元素组成。 同样取决于语言,新数组的元素可以被别名为原始数组的元素(即与之共享内存)。维基百科。也就是说切片其实是数组的衍生概念。没有数组就不会有切片了。

Python的数组

在Python中并没有数组的概念,取之代替的是list和tuple。tuple(元组)在这里不细讲了。
list本质是一个链表,我们可以对list做很多操作,以下是简单遍历打印

a =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值