序列通用操作
序列分类:可变序列list,不可变序列tuple、str
#序列索引
#索引从0开始
x =[1,2,3]
print(x[0],x[1],x[2])
#下表索引
lst = [1,2,3,4,5,6]
print(lst[0],lst[-1],lst[2]) # 1 6 3
lst[4] = 'hello' #在lst中的索引4位置上添加一个元素#hello [1, 2, 3, 4, 'hello', 6]
print(lst[4],lst)
#序列链接与重复
lst1 = [1,2]
lst2 = ["a","b"]
print(lst1 + lst2, lst1*2, lst2*2) #[1, 2, 'a', 'b'] [1, 2, 1, 2] ['a', 'b', 'a', 'b']
#切片
lst = [1,2,3,4,5,6]
print(lst[1:3]) #切片可以理解为列表的值区间,是一个左闭右开的区间,lst[1:3]代表:索引1的值-索引2的值
print(lst[1:-1]) #[2, 3, 4, 5]
print(lst[:4]) #[1, 2, 3, 4]
print(lst[2:]) #[3, 4, 5, 6]
#步长
#步长
lst = [1,2,3,4,5,6,7]
print(lst[1:6:2]) #[2, 4, 6]
print(lst[::2]) #范围是从头到尾,步长为2 [1, 3, 5, 7]
#序列的基本内置全局函数
#序列的基本内置全局函数
lst = [1,2,3,3,4,4,5,6,7,8,9,0]
print(len(lst)) #列表元素个数 12
print(max(lst),min(lst),sum(lst)) #函数 针对数字的列表:取最大值、最小值、求和 9 0 52
print(lst.count(3)) #方法 .count(obj):计算值的出现次数 2
print(lst.index(7)) #.index(obj):从列表里找到某个值的第一个匹配项的索引位置 8
#列表与生成器
#列表与生成器
a = range(5)
print(a) #range(0, 5)
lst = list(range(4,10,2)) #[4, 6, 8]
print(lst)
#书写
a = range(6) #书写正确
print(list(a)) #[0, 1, 2, 3, 4, 5]
print(a[0],a[5]) #0 5
#b =range(4:7) 书写错误
c = range(4,8) #书写正确
print(list(c)) #[4, 5, 6, 7]
#位置
lst1 = [1,2,3,[1,2,[1,2,"hello"]]]
print(lst1[3][2][2]) #hello
#可变列表的常用操作
- 添加元素
#添加元素:+、.append()、.extend()
name = ['小明', '小红']
print(name + ['团支书']) #不改变原来的name
print(name)
name.append([1,2,3]) #.append改变name
print(name)
m=[3.1,5.5,4,3,77,8]
print(m[2])
#添加多个元素用.extend()方法.注意与.append()区别
name.extend([1,2,3,[1,2,3]])
print(name)
2.删除元素
#删除元素:.remove()、del、.clear()
lst = [1,2,3,4,5,5,3,6,8,0]
lst.remove(5)
print(lst) #.remove()移除列表中某个值的第一个匹配项
del lst[1]
print(lst) # del语句:删除list的相应索引值
lst.clear()
print(lst) #.clear()删除全部
3.插入元素
# 可变列表list常用操作 - 插入元素:x.insert(i,m)
lst = list(range(10))
print(lst)
lst.insert(1,'2',) # x.insert(i,m)方法:在索引i处插入m
print(lst)
lst.insert(5,[2,4])
print(lst)
4.复制元素
# 可变列表list常用操作 - 复制元素:
lst = list(range(12))
lst1 = lst
lst1[2] = 'he'
print(lst,lst1)
# lst,lst1指向同一个列表
lst = list(range(10))
lst2 = lst.copy()
lst2[2] ='she'
print(lst,lst2)
# list.copy()方法:复制一个新的列表,lst,lst2指向两个列表(虽然两个列表值相同)
5.排序
# 可变列表list常用操作 - 排序
lst = [1,2,34,23,3,25,12,67]
lst1 = ['adc','dcc','bgf']
lst.sort()
lst1.sort()
print(lst,lst1)
# sort.()默认升序排序/字母顺序
lst.sort(reverse = True)
lst1.sort(reverse = True)
print(lst,lst1)
# 参数reverse:反向排序,针对数字
lst2 = sorted(lst1)
print(lst1,lst2)
# 函数sorted():排序并复制
#元祖tuple
# 讲一讲元祖tuple :不可变的“列表”
tup1 = ('he','she',123,456,[1,23])
tup2 = (1,2,3,4)
tup3 = 1,2,3,'she','he' # 可以不加括号
tup4 = (50,) # 元组中只包含一个元素时,需要在元素后面添加逗号
print(tup1,tup2,tup3,type(tup3),tup4)
print(tup1[2],tup3[:2]) # 索引、切片和list一样
del tup3 # 元祖不能单独删除内部元素(不可变性),但可以del语句来删除整个元祖
#print(tup3)
# tuple()函数:将列表转换为元组
lst = list(range(12))
tup5 = tuple(lst)
print(tup5)
#文本序列:字符串
#转义符号
print('\'','\"') #\'、\":分别输出单引号和双引号
print('hello\nhow do you do?') #\n:空行
print('\\') #输出\,所以文件路径用“/”或者“\\”
#字符串常用功能
st1 = "I'm handsome"
st2 = st1.replace('handsome','ugly')
print(st1,st2)
#str.replace(old,new,count):修改字符串,count:更改几个
st = "ssddf,ef4,w345,f4f44,rvrggb"
lst = st.split(",")
print(lst,type(lst))
#str.split(obj):拆分字符串,生成列表
m = "-"
st3 = m.join(lst)
print(st3,type(st3))
#str.join():连接字符串,对象为列表
st4 = 'abcdefg'
print(st4.startswith("a"),st4.endswith("f"))
# str.startswith(“str”) 判断是否以“str”开头;str.endswith (“st
1.字符串大小写
st = 'a123kkdJHNw '
print(st.upper()) #全部大写
print(st.lower()) #全部小写
print(st.swapcase()) #大小写互换
print(st.capitalize()) #首字母大写
print(st.isnumeric()) #如果 string 只包含数字则返回 True,否则返回 False.
print(st.isalpha()) #如果 string 所有字符都是字母则返回 True,否则返回 False
print(st,st.rstrip()) #删除字符末尾的空格
2.格式化字符:在字符串中插入变量
name = "Alice"
tru = "%s is good person"%name
print(tru)
# %s 表示我们这里要插入一个变量(字符串)
x = 4
y = 4.2
print("this is %i"%x)
print("this is %f"%y)
# %s,s/i/f分别代表插入字符串的源数据类型:整型/字符型/浮点型
# 格式化字符:数字格式化
m = 3.634512
print("m is %f" %m)
print("m is %.2f" %m)
# 输出2位小数:%.2f,四舍五入!
print("m is %i" %m)
print("m is %.0f" %m)
# 区别:%i 不四舍五入!
print("%+f" %m)
# 显示正号,负号根据数字直接显示
print("m is % i" %m)
print("m is % +i" %m)
#加空格,空格和正号只能显示一个:显示正号