人生苦短,我学python
一、列表生成式
生成列表 1 ~9:
第一种
直接写
第二种
list(range(1,10))
第三种
列表生成式:可以在列表中写for循环和if语句
语法 a = [i for i in range(1,10)] # 循环将for左边的值添加到列表中 lis = [i**2 for i in range(1,10)] print(lis) lis = [i for i in range(1,10) if i % 2 == 0]
二、可变类型与不可变类型
数值
、字符串
、元组
是不可变类型
列表
、集合
(set)、字典
(dict) 是可变类型
三、字符串常用方法
1、初识方法
操作数据最本质的行为:
增删改查
方法 --> 解决问题的办法/一些特定功能 --> 对数据进行增删改查的操作
使用方法的语法:
数据.方法名()
学习方法的技巧 1:该方法的作用 2:该方法的参数
对于可变数据类型和不可变数据类型
不可变类型 --》方法一般都是返回一个全新的值,并不是修改原数据
可变类型–》方法通常都不需要接收返回值,因为直接改原数据
2、find()
作用:可指定范围查找子串,返回下标值,找不到返回-1
参数:str.find(s,beg=0,end=len(string))
s – 指定查找的字符串
beg – 开始下标,默认为0
end – 结束下标,默认为字符串长度
s = "hello,world,python,php" print(s.find("h")) # find只会返回首个的下标 print(s.find("h",1)) # 从下标1处开始找,find只会返回首个的下标 print(s.rfind("h")) # 从最后开始找
3、index()
作用:可指定范围查找元素,返回下标值,找不到报错
s = "hello,world" print(s.index("h")) # 找到h的下标 print(s.index("world")) # 找world则返回 子串首个字母的下标 print(s.index("word")) # 找不到报错
4、count()
count(): 返回子串出现个数
参数: count(s)
s : 子串
s = "hello,world,python,php," print(s.count("l"))
5、lower()和upper()
lower():转小写
upper():转大写
s = "hello,world,python,php," s2 = s.upper() # 转大写 s3 = s2.lower() # 转小写 print(s3)
6、split()
split(): 切分字符串 , 将 字符串类型 转换 列表 ,默认以空格切分,也可以指定字符切分
参数:str.split(s)
s : 表示 指定切割字符串, 可以不写默认是空格
s = "hello world python,php" print(s.split("p"))
7、replace()
replace() : 把字符串中的子串 替换成 新的字符串
参数 str.replace(old,new,max)
old : 要替换的字符串
new : 新的字符串
max:替换次数(默认所有)
s = "hello world python php" s2 = s.replace(" ",",") print(s2)
8、join()
join():用于将序列中的元素以指定 字符串 连接成新的字符串
join()常用于 将 列表 转为 字符串
arr = ["摆烂阳", "在", "摆烂"] print("".join(arr)) # 常用于将列表转化为字符串
二、列表的增删改查
1、增
1.append() : 添加一个数据,添加到列表的最后一位 语法:列表名.append(数据) li = [6, 1, 5, 7, 3, 10, 8] li.append(1) # 注意:改变的原数据 print(li) 2.insert() : 添加一个数据,添加到指定下标位置 语法:列表名.insert(下标,内容) li = [6, 1, 5, 7, 3, 10, 8] li.insert(2,"摆烂阳") print(li) 3.extend() : 追加一个序列类型,将该序列类型拆分添加到最后 li = [6, 1, 5, 7, 3, 10, 8] li.extend([6,5,4]) # 将序列进行拆分,往最后添加 print(li)
2、删
1.pop():删除一个指定的下标, 默认是删最右 语法:列表名.pop(下标) li = [6, 1, 5, 7, 3, 10, 8] li.pop(3) # 删除下标3处的值 print(li) 2.remove() 删除一个指定的值。 li = [6, 1, 5, 7, 3, 10, "摆烂阳", 8] li.remove("摆烂阳") # remove里面填的是值 li.remove(10) li.remove(6) print(li) 3.clear() : 清空列表里面的所有数据 li = [6, 1, 5, 7, 3, 10, "摆烂阳", 8] li.clear() # 将列表清空=》空列表 print(li)
3、改
1.单个修改:直接通过下标进行修改 语法:列表名[下标] = 内容 li = [6, 1, 5, 7, 3, 10, "摆烂阳", 8] # 直接根据对应下标,赋值 li[0] = "从不吃晚饭" print(li) 2.多个修改:通过切片方式进行修改 语法:列表名[起点:终点] = 数据1,数据2,数据... li[1:3] = 7,2,3
4、查
查 1.index:根据内容获取指定数据的下标 2.count:统计数据出现的次数 li = [6, 1, 5, 7, 3, 10, "摆烂阳", 1] print(li.index("摆烂阳")) print(li.index(6)) print(li.count(1))
5、其他
排序方法 sort:将列表的内容排序修改 li = [6, 1, 5, 7, 3, 10, 2] # 注意sorted 和 sort sorted(li) # 不会修改原数据,而是返回排好序新列表 print(li) li.sort() print(li) li.sort(reverse=True) # 降序 print(li)
三、元组的查
元组的内容是不可变的,所以它只有查询的方法,并且存在的查和列表一模一样
1.index: 找数据下标 元组名.index(检索内容) 2.count: 统计出现次数 元组名.count(检索内容)