字符串操作,列表,元组,字典操作
# 数字int,数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以了 # bit_length() 当十进制用二进制表示时,最少使用的位数 v = 11 data = v.bit_length() # 1011 print(data) # data = 4 # bool # 真 1 True # 假 0 False # 字符串str # 索引即下表,就是字符串组成的元素从第一个开始,初始索引为0以此类推 a = 'abcdefghijk' print(a[0]) # a print(a[3]) # d print(a[5]) # f print(a[7]) # h # 切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚) a = 'abcdefghijkfjlmnopqrst' print(a[0:3]) # abc print(a[2:5]) # cde print(a[0:]) # abcdefghijklmnopqrst print(a[0:-1]) # abcdefghijklmnopqrs print(a[0:5:2]) # ace print(a[5:0:-2]) # fdb # 字符串的常用方法 # captalize, swapcase, title name = 'chenrun' print(name.capitalize()) # 首字母大写 Chenrun name = 'alex' print(name.swapcase()) # 大小写反转 ALEX msg = 'chenrun say hi' print(msg.title()) # 每个单词的首字母大写 Chenrun Say Hi # 内容居中,总长度,空白处填充 a1 = 'chenrun' ret2 = a1.center(20, '*') print(ret2) # 数字符串中的元素出现的个数 ret3 = a1.count('c', 0, 4) # 可切片 print(ret3) a2 = 'hqw\t' # \t前面的补全 # 默认将一个tab键变成8个空格,如果tab前面的字符串长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个. ret4 = a2.expandtabs() print(ret4)
a4 = 'dkfjdkfasf54' # startswitch 判断是否以...开头 # endswitch 判断是否以...结尾 ret4 = a4.endswith('jdk', 3, 6) print(ret4) # True 返回的是bool ret5 = a4.startswith('kfj', 1, 4) print(ret5) ret6 = a4.startswith('s') print(ret6) # 寻找字符串中的元素是否存在 ret7 = a4.find('fjdk', 1, 6) # kfjdk print(ret7) # 返回的找到的元素的索引,如果找不到返回-1 ret8 = a4.index('dk', 4, 6) print(ret8) # 返回的找到的元素索引,找不到报错 # split 以什么分割,最终形成一个列表此列表不含有这个分割的元素 ret9 = 'title, Tilte, atre, '.split('t') print(ret9) ret91 = 'title,Tilte,atre,'.rsplit('t', 1) # 't'是可选参数,指定的分隔符,默认为所有的空字符,包括空格,换行(\n),制表符(\tab);count 可选参数,分割次数,默认为分隔符在字符串中出现的总次数 print(ret91) # format的三种玩法 格式化输入 res = '{} {} {}'.format('egon', '18', 'male') res1 = '{1} {0} {1}'.format('egon', '18', 'male') res2 = '{name} {age} {sex}'.format(sex='male', name='egon', age='18') print(res) print(res1) print(res2) # strip name = '*egon**' print(name.strip('*')) # egon print(name.lstrip('*')) # egon** print(name.rstrip('*')) # *egon # replace name = 'alex say : i have one tesla, my name is alex' print(name.replace('alex', 'sb', 1)) ####is 系列 name = 'jinxin123' print(name.isalnum()) # 字符串由字母或数字组成 print(name.isalpha()) # 字符串只由字母组成 print(name.isdigit()) # 字符串只由数字组成,返回bool
元祖tupe
元祖被称为只读列表,即数据可以被查询,但不能被修改,所以字符串的切片操作同样适用于元祖.
列表list
列表是python中的基础数据类型之一,其他语言中也有类似的列表数据类型,比如js中叫数组,他是翌[]括起来,每个元素翌逗号隔开,而且他里面可以存放各种数据类型比如:
li = ['alex', 123, True, (1,2,3,'wusir'),[1,2,3,'xiaoming'],{'name':'slex'}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是536870912个元素,64位python限制是1152921504606846975个元素,而且列表是有序的,由索引值,可切片,方便取值
列表的增删改查
li = [1, 'a', 'b', 2, 3, 'a'] li.insert(0, 5) # 按照索引去增加,在0的位置增加数字5 print(li) li.append('aaa') # 增加到最后 print(li) li.append([1,2,3]) # 增加到最后 print(li) li.extend(['q,a,w']) # 迭代的去增 print(li) li.extend(['q,a,w', 'aaa']) print(li) li.extend('abc') print(li) li.extend('a,b,c') print(li) # 列表的删 l1 = li.pop(1) # 按照位置去删除,有返回值 print(l1) del li[1:3] # 按照位置去删除,也可切片删除没有返回值 print(li) li.remove('a') # 按照元素去删除 print(li) li.clear() # 清空列表 print(li) # 列表的改 li5 = [1, 'a', 'b', 2, 3, 'a'] li5[1] = 'dfasdfas' print(li5) li5[1:3] = ['a', 'b'] print(li5) # 查: 切片去查,或者循环去查 # 其他操作 # count(数)(方法统计某个元素在列表中出现的次数) a = ['q', 'w', 'q', 'r', 't', 'y'] print(a.count('q')) # index (方法用于从列表中找出某个值第一个匹配项的索引位置) b = ['q', 'w', 'q', 'r', 't', 'y'] print(b.index('r')) # sort (方法用于在原位置对列表进行排序); reverse (方法将列表中的元素方向存放) a = [2, 1, 3, 4, 5] a.sort() # 他没有返回值,所以只能打印 print(a) # [1, 2, 3, 4, 5] a.reverse() # 他也没有返回值,所以只能打印a print(a) # [5, 4, 3, 2, 1]