字符串常用操作
索引:通过序列号取值,只能取单个值
name = "xiaoming"
print(name[0]) #索引0代表第一个值
print(name[-1]) #-1代表最后一个
print(name[0:]) #0:代表从第一个到最后一个
len:获取字符串长度
s = "alex"
print(len(s))
a = len(s)
print(a)
切片:获取范围内的字符
s = "alex"
print(s[0])
a = s[0:-1]
print(a)
bytes字节转字符串
a = str(b, encouding="utf-8")
字符串转bytes字节
a = "eric" #定义变量
b = bytes(a, encoding="utf-8") #记住这样的格式,括号里面econding要跟编码类型
for i in b:
print(i, bin(i))
#通过for循环把已经变成的字节的编码再转换成二进制数,这里用到了函数bin
列表的常用方法
列表可以看做是多个字符串的集合,它用中括号把字符串括起来,形成自己的元素。
- 创建列表
两种创建方法是一样的,第一种创建方法其实就是调用的第二种创建方法,列表中中可以有数字,也可以包含字符串。
a_list = ["aa", "bb", 11, 22]
a_list2 = list(["aa", "bb", 11, 22])
print(name,"\n",name2) #换行显示列表,按照这个格式输入
- 列表索引
列表索引的方式与字符串相同
a_list = ["aa", "bb", 11, 22]
print(a_list[1])
b = a_list[0]
print(b)
无论什么类型用到索引的时候都是用中括号[]来确定索引位置
- 切片
列表切片的方式与字符串切片的方式是相同的。
print(a_list[0:1])
a = name[0:len(a_list)] #这里的len(a_list)是指a_list的长度,len也是可以套用的。
print(a)
- append(self, p_object):追加
name.append("seven") #追加后面直接跟括号内容
print(name)
- .extend:拓展,可迭代(iterable),批量添加内容
a_list = ["aa", "bb", 11, 22]
temp = ["dla","dkla"]
a_list.extend(temp)
print(a_list)
输出结果:
['aa', 'bb', 11, 22, 'dla', 'dkla']
- .insert:插入,通过索引插入到列表里面,可以指定插入到第几位
a_list = ["aa", "bb", 11, 22]
a_list.insert(1,"ee")
print(a_list)
输出结果:
['aa', 'ee', 'bb', 11, 22]
- .pop:移除索引指定的元素,默认移除最后一个元素
a_list = ["aa", "bb", 11, 22]
a_list.pop(0) #如果什么参数都没有,默认移除最后一个元素
print(a_list)
- .remove:移除某个元素
a_list = ["aa", "bb", 11, 22]
a_list.remove("aa") #这里必须要写元素
print(a_list)
- .reverse:反转所有元素
a_list = ["aa", "bb", 11, 22]
a_list.reverse()
print(a_list)
- .del:删除指定索引位置的元素
a_list = ["aa", "bb", 11, 22]
del a_list[0:2] #可以删除多个,得要切片的方法指定多个
print(a_list)
输出结果:
[11, 22]
元组(tuple)常用方法
元组与字符串相同,但元组不可修改
- 创建
a_tuple = ("sdf",123,"dal")
print(a_tuple)
- 索引
a_tuple = ("sdf",123,"dal")
print(a_tuple[1])
- len计算元素长度
print(len(a_tuple))
- 切片
print(a_tuple[0:]) #索引位置-1,0什么的都通用
- count:计算元素出现的次数
a_tuple = ("sdf",123,"dal", "dal")
print(a_tuple.count("dal")) #这里的参数要写元素
- index:通过字符查找索引位置,如果没找到会报错
print(name_tuple.index("dd"))
- 如果元组里面有列表的元素或者有字典的元素,那么这些元素就有可能被修改
字典(dict)常用方法
- 创建字典
a_dict = {"eric": 12, "seven": 18}
- 给字典添加新的键值对
a_dict = {}
a_dict["ke"] = "akfj" #可以用索引的方式查找key,后面等于值,如果有此key字典则会更改值,如果没有字典会自动添加进去,此方法可以用来追加
print(a_dict)
- 索引
字典的索引通过key来提取,不能按照索引位置来找。由于索引的局限性,每次只能提取一个。索引取值时key不存在的时候就会报错
a_dict = {"eric": 12, "seven": 18}
b = a_dict["eric"]
print(b)
字典是没有办法使用切片功能的
.keys:获取所有的key
print(a_dict.keys())
输出结果:
dict_keys(['eric', 'seven'])
- values:获取所有的value
print(a_dict.values())
输出结果:
dict_values([12, 18])
- .items 获取字典的格式item
print(a_dict.items())
- .clear:清空字典
a_dict = {"eric": 12, "seven": 18}
a_dict.clear()
print(a_dict)
输出结果:
{}
- .get 根据key获取值,如果key不存在,可以指定一个输出值
user_info = {"name":"dyq","age":"12","gender":"man"}
print(user_info.get("name")) #如果key存在输出值,与索引相同
a = user_info.get("shagua") #如果key不存在,则会报错:None
print(a)
a = user_info.get("shagua","212") #逗号后面的数字代表指定输出的内容,这也是.get与索引不同的地方
print(a)
- in 检查字典中指定key是否存在
print("name1" in user_info) #如果存在为True如果不存在为Fales
- .update 批量更新字典的内容
user_info = {"name":"dyq","age":"12","gender":"man"}
print(user_info)
a = {"a1":"dasha","a2":"ersha"} #先定义一个新字典
user_info.update(a) #把新字典定义到旧字典里面
print(user_info) #重新查看字典以后就会发现已经把a字典的内容加入进去了
print(user_info)显示字典的时候显示时无序的
- .del 删除指定索引的键值对
del user_info["age"]
print(user_info)
输出结果:
{'gender': 'man', 'age': '12'}
enumrate
自动为可迭代的对象添加序号,默认从0开始
shopping = ["龙虎门","白日梦想家","浮生一日"]
for key, i in enumerate(shopping, 1):
print(key, i)
inp = input("请输入商品:")
li = int(inp)
print(shopping[li-1])
还是上一个例子,反过来操作,让用户输入商品名得到商品序号
shopping = ["龙虎门","白日梦想家","浮生一日"]
print(shopping)
i = input("请输入商品名:")
a = shopping.index(i)
a = a + 1
print(a)
range和xrange
py3里的range和py2.7里的xrange作用是一样的,指定一个范围,生成范围内的所有的数
py2.7使用xrange会直接把指定的范围内的数一次性创建出来
py3不会一次行创建出来,除非通过for循环调用数字的时候它才会创建,这样能提高效率,节省资源。
实例1:
创建1到10的奇数,然后调用输出
for i in range(1, 10, 2) #第一个参数代表从0开始,第二个参数代表到10,也就是0到10之间的数,第三个参数代表从0到10之间的数每个两个打印出来,range默认间隔为1
print(i)
实例2
创建从10到1的数
for i in range(10, 1, -1) #由于range默认的数字为增加,所有第三个参数为-1,这样就能以减的形式输出内容
print(i)