golang和python实现未知长度数组的不同

 

1、python里面定义未知长度数组

python里面数组可以声明一个未知长度的数值

比如python可以这样定义:

#!/usr/bin/python3
        a1=[]
        for i in range(0,10):
            a1[i]=str(i)+"a"
            #print(i)

执行报错:IndexError: list assignment index out of range

原因是:a1是个空数组,不能使用a1[i],可以换成a1.apped,改成

        a1=[]
        for i in range(0,10):
            a1.append(str(i)+"a")
        for index, value in enumerate(a1):
            print (index, value)


执行结果是:
0 0a
1 1a
2 2a
3 3a
4 4a
5 5a
6 6a
7 7a
8 8a
9 9a

 

2、golang里面没法定义未知长度的数租,但是有slice可以取代

Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。看下学习演示代码:

	//定义切片
	var a1 []string
	//给切片赋值
	for i:=0;i<10;i++{
		a1=append(a1,strconv.Itoa(i)+"a")
	}
	//遍历切片
	for j:=0;j<len(a1);j++{
		fmt.Println(j,a1[j])
        fmt.Println("new dispay:",j,a1[j:j+1][0])
	}

输出结果:
0 0a
new dispay: 0 0a
1 1a
new dispay: 1 1a
2 2a
new dispay: 2 2a
3 3a
new dispay: 3 3a
4 4a
new dispay: 4 4a
5 5a
new dispay: 5 5a
6 6a
new dispay: 6 6a
7 7a
new dispay: 7 7a
8 8a
new dispay: 8 8a
9 9a
new dispay: 9 9a

 

 

 

参考文章:https://www.runoob.com/python/python-lists.html

参考文章:https://m.runoob.com/go/go-slice.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值