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 = ['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']
⾃定义下标插⼊:
python新手函数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']
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']
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']
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论