python -- 字符串、列表、元组、字典操作
1. 字符串
字符串是不可变变量,不能通过下标来修改它的值,但可以通过以下方法取值:
1 name = "123" #定义字符串 2 print(name[0]) #通过下标取值
字符串也可通过for循环来循环对象里的每一个元素。
常用的字符串方法
所有字符串的方法,都不会修改原字符串的值,都会产生一个新的字符串。
1 import string #导入string 2 print(string.ascii_letters+string.digits) #大小写字母+数字 3 4 s.find("n") #查找字符串,返回索引值;找不到返回-1 5 s.format(name="xxx",age="18") #格式化字符串 6 s.isalnum() #是否含数字和字母 7 s.isalpha() #是否是英文字母 8 s.isdigit() #是否是数字 9 s.islower() #是否为小写字母 10 s.isupper() #s是否为大写字母 11 "," .join(s) #用","进行字符串拼接,通过字符拼接可迭代对象 12 s.strip() #默认去掉两边的空格和换行 13 当传入字符串时,去掉该字符串,而不去掉空格 14 s.replace() #替换字符串 15 s.split(",") #分割字符串,返回一个list 16 若什么都不传,则按空格分割,多个空格算一个
2. 列表
列表是可变变量,可以通过下标修改其值,常用的方法有:
1 name = [1,2,3,"liliyun",'panyang'] #定义列表 2 print(names[3]) #通过下标取值 3 name.append("xxx") #增加元素到最后 4 name.insert(0,"xxx") #指定位置0添加元素 5 name.pop() #删除最后一个元素,并返回删除的值 6 name.pop(2) #删除指定位置2的元素,并返回删除的值 7 name.clear() #清空列表 8 del name[0] #删除指定位置0的元素 9 del name #删除列表 10 name.remove("xxx") #删除指定元素值,传的是值,需与pop区分开 11 name.count("xxx") #指定元素在list中出现的次数 12 name.index("xxx") #返回xx的下标,有多个时取第一个,若没有则报错 13 name.index("xx",3,5) #查找3-5范围的xx,并返回xx的下标 14 name.sort() #排序,默认是升序 15 name.sort(reverse=True) #降序排列 16 name+str #列表相加。组合成新的list 17 name.extend(str) #把str扩展到name列表 18 in #判断元素是否包含在list里
切片功能
切片就是从list或字符串里取几个元素,需要注意的是,切片取值属于顾头不顾尾,只能取到区间尾数的前一位。
1 name[0:2] #从第0个元素到第2个元素,取值 2 name[:2] #从第0个元素到第2个元素,取值 3 name[1:] #从第1个元素到最后一个元素,取值 4 name[:] #都不写的话,取整个list 5 name[1:10:2] #后面一位为步长,即每隔几个值取一次 6 name[::2] #取整个list,步长为2 7 name[::-2] #取整个list,步长为-2,即倒序取值
3. 元组
元组是不可变变量,只有count方法和index方法,定义元组时,若只有一个元素,则要在这个元素后面加逗号【,】,否则就是定义了个字符串
1 tp=() #定义元组 2 tp.count("") #统计次数 3 tp.index("") #查找下标 4 tp1=("a",) #元组只有一个元素时,要在后面加一个【,】 5 否则是字符串,而非元组
4. 字典
字典是可变变量,字典是以key:value形式存在的,里面的key不能重复,常用方法如下
1 info["key"] #取值,取不到时报错 2 info.get("key") #取值,获取不到时,返回none 3 info.get("key","haha") #取值,get不到时,返回第二个参数 4 info["xx"]="yy" #增加一个键值对 "xx":"yy" 5 info.setdefault("phone","1111") #增加一个键值对 "xx":"yy" 6 info["id"] = "7" #有key时修改。没有key时新增 7 del info["id"] #删除ID 8 info.pop("id") #删除ID 9 info.popitem() #随机删除一个函数 10 info.clear() #清空字典 11 info.keys() #返回所有keys 12 info.values() #返回所有values 13 info.items() #返回keys、values 键值对 14 info.update(info2) #两个字典合并,如果有相同key则更新其value
5. 类型转换
字符串转为字典: eval()
1 s = "{\"name\":\"haha\",\"age\":22}" # 字符串要符合字典规则,即key:value形式 2 dict_1 = eval(s) # eval方法把字符串转换为字典 3 print(dict_1)
字典转换为字符串:str(),其他如列表、元组也可以通过子方法转换为字符串
1 dict_2 = {"name":"lily","age":22} 2 list=[1,2,3] 3 tp = ("male","female") 4 s1 = str(dict_2) 5 s2 = str(list) 6 s3 = str(tp) 7 8 print(type(s1)) 9 print(type(s2)) 10 print(type(s3))
字符串转换为整形:int()
1 s = "1" #字符串要为数字 2 print(type(s)) 3 num = int(s) 4 print(type(num))