【Python】学习笔记2-数据类型:数组、数组循环切片

数组、数组循环切片、字符串方法、字典、元组

一、数组

1、一维数组,就是list:

 1 strus = ['xiaohei','xiaobai','xiaohuang']
 2 print(strus)# 输出全部数组
 3 print(strus[2])# 小标,角标,索引 0 1 2 3
 4 print(strus[-1])# 最后一个元素下标是-1
 5 #
 6 # 增加append
 7 strus.append('chenmenmg') # append,增加到末尾
 8 # 增加insert
 9 strus.insert(0,'chenmeng1')# insert,在指定是位置增加元素,如果指定的小标不存在,那么就在末尾添加
10 strus.insert(6,'chenmen6')
11 strus.insert(-1,'chenmeng7')# 注意:insert不要用-1,位置不对
12 print(strus)
13 #
14 # 修改,即赋值
15 # 替换strus[6]strus[7]
16 strus[0]='chenmeng0'
17 t=strus[6]
18 strus[6]=strus[5]
19 strus[5]=t
20 print(strus)
21 
22 # 查找某个字符在字符串中
23 if 'xiaohei' in strus:
24     print('aaaaaaaa')
25 # 查看某个元素在数组里面的个数,count,不存在返回0
26 print(strus.count('chenmenmg'))
27 # 找到元素的索引,如果有多个找到第一个,如果找到一个不存在的,就报错
28 print(strus.index('chenmenmg'))
29 
30 # 删除pop
31 print('删除',strus)# pop默认删除最后一个元素,可以指定下标删除
32 strus.pop(0)
33 strus.pop()
34 print(strus.pop())# 删除直接打印,会将删除的值返回
35 print(strus)
36 
37 # 删除remove 删除不会打印自己
38 strus.remove('xiaohei')
39 print(strus)
40 
41 # 删除del 删除指定元素
42 del strus[0]
43 print(strus)
44 
45 # clear 清空整个list
46 strus.clear()
47 print(strus)
48 
49 # reverse,反转list
50 strus = [1,2,3]
51 print(strus)
52 strus.reverse()
53 print(strus)
54 
55 # sort 排序,默认升序
56 strus = [11,200,3]
57 print(strus)
58 strus.sort()
59 print(strus)
60 strus.sort(reverse=True)# 注意:按照降序排,sort指定reverse=True
61 print(strus)

2、多维数组

 1 # 二维数组
 2 two =[1,2,[31,32]]
 3 print(two)
 4 print(two[2][0])
 5 # 三维数组
 6 three =[2,5,[1,7,[0,10]]]
 7 print(three)
 8 print(three[-1][-1][-1])# 打印最后一个
 9 
10 # 合并两个数组extend
11 two.extend(three)
12 print(two)
13 print(three)

3、list循环

 1 # 循环
 2 names =['cm1','cm2','cm3']
 3 for name in names: #如果直接for循环一个list的时候,那面每次循环的值是这个list里面的元素,换行打印list数组里面的元素
 4     print(name)
 5 
 6 # 循环,同时打印索引和数组值enumerate(枚举),必须含有两个参数
 7 for index, item in enumerate(names):#i,v随意注册的变量
 8     print ("index = %s,value = %s" % (index, item)) # index = 0,value = cm1
 9 
10 # 注意:循环list时,不能有删除的操作,因为一旦删除一次,list就变化,如下:删除所有奇数
11 
12 # 错误写法
13 li = [1,1,2,3,4,5,6,7,8,9]
14 for i in li:
15     if i%2!=0:
16         li.remove(i)
17 print(li)
18 
19 # 正确写法
20 # remove(),()中是值
21 li = [1,1,2,3,4,5,6,7,8,9]
22 li2 =li[:]
23 for i in li2:
24     if i%2!=0:
25         li.remove(i)
26 print(li)
27 
28 # 注意:不能用li2=li,指针一样
29 # 注意:li2=li浅拷贝
30 # 注意:li2 =li[:]深拷贝
31 # 深浅拷贝的区别,内存地址是否变化
32 
33 # 打印list的地址id()
34 li2=li
35 print("Li地址:",id(li))
36 print("Li2地址:",id(li2))

4、list切片

 1 # 切片:list取值的一种方式,顾头不顾尾
 2 new_names = names[0:1] #取names【0】直到name【1】,不取name【1】:['cm1']
 3 new_names = names[:1] # 如果切片前面一个值不写的话,从开头开始取,输出['cm1']
 4 print(names[1:]) # 如果切片后面一个值不写的话,取末尾:['cm2', 'cm3']
 5 print(names[:])# 如果切片前面后面的值都不写的话,全部取出来
 6 
 7 # 步长,常用概率高:间隔几个取一个
 8 nums = [1,2,3,4,5,6,7,8,9]
 9 print(':1',nums[::2]) #:1 [1, 3, 5, 7, 9]
10 
11 # 步长是正数时,从左往右取
12 # 步长是负数时,从右往左取
13 print(':1',nums[::-1]) #等价于反转:1 [9, 8, 7, 6, 5, 4, 3, 2, 1]
14 print(nums[-1:-3:-1])#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值
15 
16 # 切片同样适用于字符串,字符串也有下标,空格算一个字符
17 title = '今天圣诞节'
18 print(title[2:]) #圣诞节
19 for t in title:
20     print(t)