python定义字符串数组_python 入门之 – 数组类型(十二)

关于数组类型,有过编程基础的都知道是怎么回事儿,最为代表的其实就是JOSN格式的数据了,在python中定义数组,其实就是和JS中可以说一摸一样,如:

arr = []

print(type(arr))

我先用 type() 方法判断一下变量 arr 的类型,打印出来了是

list 语义话的意思其实就是列表或者说数组集合,其实数组里面有好多种操作,如:

1、创建数组

2、查询数组

3、数组切片

4、数组增加

5、数组修改

6、数组删除

7、数组排序

8、数组拼接

创建数组

创建数组的方式有很多种,第一种:

arr = []

这是创建的一个空数组,里面没有任何数据

第二种:

arr = ['张三','李四','王五','赵六']

这是赋值的情况下创建的,一创建里面就已经有了数据

第三种:

arr = list()

这一种比较特别了,如上方第一个演示,我用 type() 操作符判断数组类型打印出来的就是 list 类型,所以这种方式和 js 里面的构造函数比较类似

查询数组

查询数组其实就是查询某个元素在那个位置,可以通过下标查询得到值,也可以通过字符串查询出下标,还可以统计指定元素的个数

下标查询如:

arr = ['张三','李四','王五','赵六']

arr[0] #通过索引值下标查询,0 代表第一个,等于 '张三'

arr[-1] #从右往左查询,-1 代表最后一个,以此类推,等于 '赵六'

在数组里面,python提供了一个操作方法,可以直接返回出对应值的下标,如:

arr = ['张三','李四','王五','赵六']

arr.index('张三') #返回出下标 0

arr.index('李四') #返回出下标 1

arr.index('王五') #返回出下标 2

arr.index('赵六') #返回出下标 3

如上方所示,index()可以找到对应值的下标,但是如果有多个一样的值,index()默认查找到第一个就不会往下继续查找了,如:

arr = ['1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','1','6','7','8']

arr.index('5') #返回出来的值等于 4 ,之后他就不会往下继续匹配了,默认匹配到第一个值后就会停止,不会往下走了

如上方index()方法,匹配到第一个值后就不会往下继续匹配了,如果我需要知道有多少个相同的值,那么就要换一个方法了,python还提供了一个方法count(),如:

arr = ['1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','1','6','7','8']

arr.counr('1') #返回出来的值是 3 ,代表这个数组中有三个相同的字符串 '1'

数组切片

数组切片其实就是通过下标自定义去除从多少到多少的元素,如:

arr = ['1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','1','6','7','8']

arr[0:5] #返回的其实就是['1','2','3','4']

0 代表的就是第一个,5 代表的就是第五个前面的一个,默认都是顾头不顾尾。

关于数组切片还有几个比较好的实例,如:

arr = ['1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','1','6','7','8']

arr[-5:-1] #得出结果为:['9', '1', '6', '7'],切片必须从左往右切,所以是 [-5:-1]

arr[:-1] #得出的结果是整个数组,第一个默认不写的话取之是从第一个开始取

arr[0:] #得出的结果是整个数组,最后一个默认不写的话取之是倒数第一个 -1

arr[:] #得出的结果是整个数组,第一个默认不写代表第一个,最后一个默认不写代表最后一个

上面的数组切片只是基础的切片的几种用法,如果我要把数组里面的值隔一个取一个取出来,并且组合成一个新的数组,那么这种操作,我还可以用上面的方法操作,如:

arr = ['1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','1','6','7','8']

arr[0:-1:2] #这样就得出了我想要的结果:['1', '3', '5', '7', '9', '2', '4', '6', '8', '1', '7']

arr[:-1:2] #这样就得出了我想要的结果:['1', '3', '5', '7', '9', '2', '4', '6', '8', '1', '7']

arr[::2] #这样就得出了我想要的结果:['1', '3', '5', '7', '9', '2', '4', '6', '8', '1', '7']

可以看到,我在后面加了一个:2,这样就是隔一个取一个,如果把2写成1的话,那么就是默认全部取出来,隔两个写3以此类推。

数组增加

关于数组增加,在 python 里面有两个方法,一个数组追加,一个是自定义下标插入

数组追加:append()

自定义下标插入:insert(下标,数据)

数组追加:

arr = ['1','2','3']

arr.append('123')

print(arr)

打印出来的是:['1','2','3','123']

自定义下标插入:

arr = ['1','2','3']

arr.insert(0,'123123123')

print(arr)

打印出来的结果为:['123123123','1','2','3']

数组修改

其实数组修改,就是重新赋值,和清除一个变量的值重新赋值一样,如:

arr = ['1','2','3']

arr[0] = '312'

print(arr)

打印出来的结果为:['312','2','3']

如上方所示,我是单个修改,如果我要集体修改好几个元素其实也可以,如:

arr = ['1','2','3','4']

arr[0:3] = '6789'

print(arr)

得出的结果是:['6','7','8','9','4'],至于为什么是这个结果,那是因为他会把字符串全部解析拆分出来往数组里面插入,如果修改只是修改了三个但实际上我有四个字符串,他会全部往里面添加,后面的数据则会往后递增,所以'4'到了第五个字符串的位子上

数组删除

删除数组中的某一个元素在 python 中提供了好几种方法如:

删除最后一个元素:pop()

删除从左边查找到的第一个元素:remove()

全局删除指定的元素:del

删除最后一个元素:

arr = ['1','2','3','4']

arr.pop()

print(arr)

得到的结果为:['1','2','3']

删除从左边查找到的第一个元素:

arr = ['1','2','3','4']

arr.remove('2')

print(arr)

得到的结果为:['1','3','4']

全局删除指定的元素:

arr = ['1','2','3','4']

del arr[0]

print(arr)

得到的结果为:['2','3','4']

del 除了可以单独删除还可以切片删除多个元素,如:

arr = ['1','2','3','4']

del arr[:2]

print(arr)

得到的结果为:['3','4']

数组排序

数组排序完全按照 ASCII 码来排序,python 提供了两个方法,一个是正序,一个是反序,如:

sort() 正序

reverse() 反序

数组排序是同一个类型的数组进行排序,如:

arr = ['f','a','z','g','j']

arr.sort()

print(arr)

打印出来的结果:['a','f','g','j','z']

换一种格式如果我用数字类型来排序:

arr = [1,8,3,0,6]

arr.sort()

print(arr)

打印出来的结果:[0,1,3,6,8]

再来一种字符串类型的数字,和字符串英文,并且加上大小写,如:

arr = ['1','a','D','A','5','Z','s']

arr.sort()

print(arr)

打印出来的结果:['1','5','A','D','Z','a','s'],可以看到字符串数字在第一个,大写字母第二个,小写字母第三个。

再换最后一种,不同类型的字符串数字,如:

arr = [1,'a','D','A',5,'Z','s']

arr.sort()

print(arr)

运行结果报错了如下:

所以不同类型不能放到一起排序。

以上排序方法实例全部由正序排序,反序则是正序的相反,这里就不做演示了,请自行测试反序 reverse()

数组拼接

数组拼接其实就是把两个数组编程一个数字,可以用加法运算符 + ,也可以用 python 提供的另一个方法 extend(),如:

a = ['1','2','3','4','5']

b = ['a','b','c','d','e']

a += b

print(a)

输出结果为:['1','2','3','4','5','a','b','c','d','e']

第二种:

a = ['1','2','3','4','5']

b = ['a','b','c','d','e']

a.extend(b)

print(a)

输出结果同上:['1','2','3','4','5','a','b','c','d','e']

清空整个数组

clear()

a = ['1','2','3','4','5']

a.clear()

print(a)

输出结果为:[],等于整个数组都清空了

拷贝数组

拷贝整个数组,也就是复制整个数组,方法为:copy(),如:

a = ['1','2','3','4','5']

b = a.copy()

print(b)

打印结果为:['1','2','3','4','5']

切记,不要直接用 等于号 复制,因为其中一个改变了另外一个也会跟着改变,如:

a = ['1','2','3','4','5']

b = a

b[0]='100'

print(a)

打印结果如下:['100','2','3','4','5']

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值