以下部分笔记来自路飞学城教育机构学习课件
1.0 数据类型-str
1.1 字符串定义
创建
s = "Hello, my name is Alex,golden king."
字符串特性
1.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
2.
3.切片操作 (顾头不顾尾)
>>> s'Hello, my name is Alex,golden king.'>>> s[3:6] # 顾头不顾尾'lo,'>>> s[1:5]'ello'>>> s[0:5]'Hello'>>>>>> s[3:10]'lo, my '
4.不可变,字符串是不可变的,不能像列表一样修改其中某个元素,所有对字符串的修改操作其实都是相当于生成了了一份新数据。
1.2 字符串常用操作
a = "Alex li 金角大王" #字符串print(a.center(50, "-")) # 居中并填充 ---------Alex li 金角大王--------print(a.count("l", 0, 4)) # 计数print(a.endswith("王")) # 判断结尾print(a.startswith(("Al"))) # 判断开头print(a.find("单")) # 字符查找 返回-1代表没找到print(a.find("角")) # 字符查找 如果找到了就返回所查字符的索引print("22".isdigit()) # 判断是否是整数l = ["alex", "black girl", "pig"]#列表print("-".join(l)) #用于连接列表内的元素 # alex-black girl-pigprint(a.replace("l","M",1)) #字符串不可变 只会赋予新值 最后数字指定替换个数 # AMex li 金角大王print(a.split("l",1))#按照指定字符(默认空格)把字符串拆成列表 # ['A', 'ex li 金角大王']
2.0 数据类型-list
2.1 定义
列表:[]内以逗号分隔,按照索引,存放各种数据类型,每一个位置代表一个元素
列表的特点:
1.可存放多个值
2.可存放多个值、按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
3.可修改指定索引位置的值,可变
2.2 列表的增加操作
追加,数据会追加到尾部
>>> names['alex', 'jack']>>> names.append("rain")>>> names.append("eva")>>> names['alex', 'jack', 'rain', 'eva']
插入,可插入任何位置
>>> names.insert(2,"黑姑娘")>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva']
合并,可以把另一外列表的值合并进来
>>> n2 = ["狗蛋","绿毛","鸡头"]>>> names=['alex', 'jack', '黑姑娘', 'rain', 'eva']>>> names.extend(n2)>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']
列表嵌套
>>> names.insert(2,[1,2,3])>>> names ['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛','鸡头']>>> names[2][1] 2
2.3 删除操作
del 直接删
>>> names['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']>>> del names[2]>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']
.pop 删除
>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']>>> names.pop() #默认删除最后一个元素并返回被删除的值'鸡头'>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛']>>> help(names.pop)>>> names.pop(1) #删除指定元素'jack
.remove 删除
>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头', 'eva']>>> names.remove("eva") # 删除第⼀一个找到的eva值>>> names['alex', 'jack', '黑姑娘', 'rain', '狗蛋', '绿毛', '鸡头', 'eva']
.clear 清空
>>> n2['狗蛋', '绿毛', '鸡头']>>> n2.clear()>>> n2[]
2.4 修改操作
>>> names['alex', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛']>>> names[0] = "金⻆大王">>> names[-1] = "银角⼤王">>> names['⾦⻆大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王']
2.5 查操作 .index() 返回索引
>>> names['⾦角⼤王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王', 'eva']>>> names.index("eva") #返回从左开始匹配到的第一个eva的索引3>>> names.count("eva") #返回eva的个数2
在不知道一个元素在列表的哪个位置的情况下,如何修改:
1.先判断在不在列表里 item in list
2.取索引, item_index = names.index("eva")
3.去修改,names[item_index] = "铁蛋"
2.6 切片
names[start : end]>>> names['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银角大王', 'eva']>>> names[1:4] #不包含下标4的元素['黑姑娘', 'rain', 'eva']
注意:切片的特性是顾头不顾尾,即start的元素会被包含, end-1是实际取出来的值
简写
>>> n[0:4]['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']>>> n[:4]['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']
取倒数后2个值
>>> n[0:4]['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']>>> n[:4]['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']>>> n[4:5]['rain']>>> n[4:6] # 超标写法['rain', 'eva']>>> n[4:] # 省略最后⼀一个索引['rain', 'eva'] #
倒着切(索引正着写 顾头不顾尾 所以会少一个)
>>> names[-5:-1]['rain', 'eva', '狗蛋', '银⻆大王']>>> names[-5:]['rain', 'eva', '狗蛋', '银⻆大王', 'eva']
如果取前几个值,一样可以把:号左边的省掉
>>> names['⾦角⼤王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王', 'eva']>>> names[0:3]['⾦角大王', '黑姑娘', 'rain']>>> names[:3] #跟上面⼀样的效果['金⻆大王', '黑姑娘', 'rain']
步长(跳着切)
names[start:end:step] #step 默认是1
>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> a[0:7:2] #设置步长为2[0, 2, 4, 6]
简写
>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> a[::3] #按步长3打印列表,第1个:是省略掉的start:end[0, 3, 6, 9]
2.7 排序&反转
排序 .sort()
>>> a = [83,4,2,4,6,19,33,21]>>> a.sort()>>> a[2, 4, 4, 6, 19, 21, 33, 83]
反转 .reverse()
>>> names['#', '4', '@', 'eva', 'rain', '狗蛋', '⾦角⼤大王', '银⻆大王', '黑姑娘']>>> names.reverse()>>> names['黑姑娘', '银⻆大王', '⾦角⼤王', '狗蛋', 'rain', 'eva', '@', '4', '#']
2.8 循环列表
>>> for i in names:...print(i)...黑姑娘银⻆大王金⻆大王狗蛋raineva@4#
打印列表索引 enumerate()
>>> for i in enumerate(n):...print(i[0],i[1])...0 Alex1 alex2 eva3 rain4 shit5 ⿊黑姑娘
3.0 数据类型-dict
{key1:value1, key2:value2}
info = {"name":"Alex Li","age" : 26}key -> value
: 号左边是key,右边是value
特性:
1.key-value结构
2.key必须为不可变数据类型(字符串、数字)、必须唯一
3.可存放任意多个value(用list)、可修改、可以不唯一
4.无序、ordered_dict
5.查询速度快、且不受dict的大小影响
3.1 增加操作
mes = {"alex": [23, "CEO", 66000],"黑姑娘": [24, "行政", 4000],}# 新增knames["佩奇"] = [26, "讲师", 40000]
3.2 删除操作 .pop() / del / .clear()
names.pop("alex") # 删除指定keydel names["oldboy"] # 删除指定key,同pop方法names.clear() # 清空dict
3.3 修改操作
dic['key'] = 'new_value' # 如果key在字典中存在, 'new_value'将会替代原来的value值;
3.4 查操作
dic['key'] #返回字典中key对应的值,若key不存在字典中,则报错;dic.get(key, default = None) #返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)'key' in dic #若存在则返回True,没有则返回Falsedic.keys() #返回一个包含字典所有KEY的列表;dic.values() #返回⼀个包含字典所有value的列表;dic.items() #返回⼀个包含所有(键,值)元组的列表;# k,v 2个变量>>> for k,v in dic.items():... print(k,v)...Alex [23, 'CEO', 66000]黑姑娘 [24, '行政', 4000]佩奇 [26, '讲师', 40000]
3.5 循环
1、 for k in dic.keys()2、 for k,v in dic.items()3、 for k in dic # 推荐⽤这种,效率速度最快 (k表示key,dic[k]表示value)info = {"name":"路飞学城","mission": "帮⼀千万极客⾼效学编程","website": ""}for k in info:print(k,info[k])输出>>>name 路飞学城mission 帮一千万极客高效学编程website
3.6 求长度
len(info) # len()方法可同时用于列表、字符串
如果觉得《Python学习笔记(字符串 列表 字典)》对你有帮助,请点赞、收藏,并留下你的观点哦!