字符串操作,列表,元组,字典操作

# 数字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]
 




猜你喜欢

转载自www.cnblogs.com/chenrun/p/9117544.html