Python学习笔记三:序列应用

序列通用操作

lst = [1,2,3,4,5,6]
a,b = 1,10
print(a in lst)  # a 在 lst 序列中 , 如果 x 在 y 序列中返回 True。
print(b not in lst)  # b 不在 lst 序列中 , 如果 x 不在 y 序列中返回 True。
 
Output:
True True

lst1 = [1,2,3]
lst2 = ['a','b','c']
print(lst1+lst2) # "+":序列的链接
print(lst1*3,lst2*2) # "*":序列重复
 
Output:
[1, 2, 3, 'a', 'b', 'c']
[1, 2, 3, 1, 2, 3, 1, 2, 3] ['a', 'b', 'c', 'a', 'b', 'c']

lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[0],lst[2],lst[9]) # 索引从0开始,eg lst[2]中,下标索引是2,指向lst的第3个值
print(lst[-1]) # 索引-1代表最后一个值
#print(lst[10]) # 这里一共有10个值,所以最大索引是9
 
Output:
1 3 0
0

切片   
# 切片可以理解成列表的值区间,且是一个左闭右开区间
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[2:5]) #这里lst[2:5]代表的区间是:索引2的值 - 索引4的值
print(lst[:5]) # 左边无索引,代表从索引0开始
print(lst[4:]) # 右边无索引,代表以最后一个值结束
print(lst[5:-1]) # 索引5的值 - 倒数第二个值 (切片是右闭区间,注意了)
 
Output:
[3, 4, 5]
[1, 2, 3, 4, 5]
[5, 6, 7, 8, 9, 0]
[6, 7, 8, 9]

步长   
# 切片可以理解成列表的值区间,且是一个左闭右开区间
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[0:5:2]) # List[i:j:n]代表:索引i - 索引j,以n为步长
print(lst[::2]) # 按照2为步长,从第一个值开始截取lst数据
print(lst[1::2]) # 按照2为步长,从第二个值开始截取lst数据
 
Output:
[1, 3, 5]
[1, 3, 5, 7, 9]
[2, 4, 6, 8, 0]

lst = [1,2,3,4,5,6,7,8,9,0]
print(len(lst)) # 列表元素个数
print(max(lst),min(lst),sum(lst)) # 返回列表的最大值、最小值、求和,这三个函数都只针对数字的list
print(lst.index(3)) # .index(obj)方法:从列表中找出某个值第一个匹配项的索引位置
lst = [1,1,2,3,3,4,4,4,4,5,6]
print(lst.count(4)) # .count(obj)方法:计算值的出现次数
 
Output:
10
9 0 45
2
4

切片   
# 切片可以理解成列表的值区间,且是一个左闭右开区间
lst = [1,2,3,4,5,6,7,8,9,0]
print(lst[2:5]) #这里lst[2:5]代表的区间是:索引2的值 - 索引4的值
print(lst[:5]) # 左边无索引,代表从索引0开始
print(lst[4:]) # 右边无索引,代表以最后一个值结束
print(lst[5:-1]) # 索引5的值 - 倒数第二个值 (切片是右闭区间,注意了)
 
Output:
[3, 4, 5]
[1, 2, 3, 4, 5]
[5, 6, 7, 8, 9, 0]
[6, 7, 8, 9]

 

列表list常用操作

print(range(5),type(range(5)))
# range()是生成器,指向了一个范围
# range(5)代表指向了0,1,2,3,4这几个值
# range(2,5)代表指向了2,3,4这几个值,注意这里不是使用:
# range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表步长
lst = list(range(5))
print(lst)
# 通过list()函数生成列表
 
Output:
range(0, 5) <class 'range'>
[0, 1, 2, 3, 4]

lst = list(range(10))
lst.append('hello')
print(lst)
# list.append() 添加元素
lst.append(['a','b','c'])
print(lst)
lst.extend(['a','b','c'])
print(lst)
# append()可以添加单个元素;添加多个元素用extend()方法;
# 用新列表扩展原来的列表,注意extend()和append()方法的区别。
 
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello']
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c']]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello', ['a', 'b', 'c'], 'a', 'b', 'c']

lst = ['Jack','Jack','Tom','Tracy','Alex','White']
lst.remove('Jack')
print(lst)
# .remove方法:移除列表中某个值的第一个匹配项
del lst[3:5]
print(lst)
# del语句:删除list的相应索引值
lst.clear()
print(lst)
# 移除所有值
 
Output:
['Jack', 'Tom', 'Tracy', 'Alex', 'White']
['Jack', 'Tom', 'Tracy']
[]

lst = list(range(10))
print(lst)
lst.insert(3,'a')
print(lst)
# x.insert(i,m)方法:在索引i处插入m,这里索引3代表第四个值
lst.insert(5,[1,2,3])
print(lst)
# 插入一个列表元素
 
Output:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 'a', 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 'a', 3, [1, 2, 3], 4, 5, 6, 7, 8, 9]

lst = list(range(10))
lst1 = lst
lst1[2] = 'hello'
print(lst,lst1)
# lst,lst1指向同一个列表
lst = list(range(10))
lst2 = lst.copy()
lst2[2] = 'hello'
print(lst,lst2)
# list.copy()方法:复制一个新的列表,lst,lst2指向两个列表(虽然两个列表值相同)
 
Output:
[0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9] [0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 'hello', 3, 4, 5, 6, 7, 8, 9]

lst1 = [12,45,32,98,45,66,3]
lst2 = ["asd", "cxv", "ghv"]
lst1.sort()
lst2.sort()
print(lst1,lst2)
# 默认升序排序/字母顺序
lst1.sort(reverse=True)
lst2.sort(reverse=True)
print(lst1,lst2)
# 参数reverse:反向排序,针对数字
lst3 = sorted(lst1)
lst3.append('hello')
print(lst1,lst3)
# 函数sorted():排序并复制
Output:
[3, 12, 32, 45, 45, 66, 98] ['asd', 'cxv', 'ghv']
[98, 66, 45, 45, 32, 12, 3] ['ghv', 'cxv', 'asd']
[98, 66, 45, 45, 32, 12, 3] [3, 12, 32, 45, 45, 66, 98, 'hello']

文本序列str常用操作

print('a' in 'abc') # in/not in :判断是否存在
print('我很帅' + "没错") # 文本连接
print('handsome '*4) # 文本复制
st = 'abcdefg'
print(st[2],st[-1])
print(st[:2])
print(st[::2])
# 索引、切片、步长
print(st.index('g')) # .index()方法
print('st长度为:',len(st)) # 计算字符串长度(思考这里能否把逗号换为"+")
 
Output:
True
我很帅没错
handsome handsome handsome handsome 
c g
ab
aceg
6
st长度为: 7

# str.replace(old,new,count):修改字符串,count:更换几个
# str.split(obj):拆分字符串,生成列表
# str.join():连接字符串,对象为列表
# str.startswith(“str”) 判断是否以“str”开头;str.endswith (“str”) 判断是否以“str”结尾
# str.upper()   全部大写
# str.lower()   全部小写
# str.swapcase()   大小写互换
# str.capitalize()   首字母大写
# str.isnumeric()   如果 string 只包含数字则返回 True,否则返回 False.
#str.isalpha())   如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
#str.rstrip()   删除字符末尾的空格

name = "Lyb"
truth = "%s is nice" %name
print(truth)
# %s 表示我们这里要插入一个变量(字符串),%name代表这里我们插入name
# %s的s有什么含义:%s %z %f都是格式化字符串,
# s/i/f分别代表插入字符串的源数据类型:整型/字符型/浮点型
print("User ID: {0}".format("root"))
# format更灵活
Output:
Lyb is nice
User ID: root
时间: 2018年04月20日下午22:41  |  
作者:
LEAVE A REPLY

loading