CH03序列及通用操作

【课程3.2】 序列通用操作

序列分类:可变序列list,不可变序列tuple、str。

判断值是否属于序列
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。
##### 序列链接与重复

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

结果如下:

[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
切片
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的值 - 倒数第二个值 (切片是右闭区间,注意了)
步长
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数据
序列的基本内置全局函数
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)方法:计算值的出现次数

【课程3.3】 列表list常用操作

序列是Python中最基本的数据结构,它支持字符,数字,字符串甚至可以包含列表(即嵌套)
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切片也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作

列表的特征
lst1 = [1,2,3,'a','b','c',[1,2,3]]
# 可包含任意类型的对象:数值、字符串、列表等

lst2 = [143,56,894,67,43]
print(lst2[0],lst2[4],lst2[-1])
# 通过下标索引访问序列中的值 → 序列的顺序是不能改变的,通过索引来定位列表的元素

lst3 = [1,2,3]
lst3 = lst3 * 3
print(lst3)
# 可随意变换列表长度,相当于随意指定新的列表

lst4 = [1,2,['a','b']]
# 可嵌套

lst5 = [100,101,102]
lst5[0] = 10
print(lst5)
# 可原位改变

列表与生成器
# 列表与生成器

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()函数生成列表
可变列表list常用操作 - 添加元素
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)

输出结果如下:

[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']
可变列表list常用操作 - 删除元素
# 可变列表list常用操作 - 删除元素

lst = ['Jack','Jack','Tom','Tracy','Alex','White']
lst.remove('Jack')
print(lst)
# .remove方法:移除列表中某个值的第一个匹配项

print(lst[3:5])
del lst[3:5]
print(lst)
# del语句:删除list的相应索引值

lst.clear()
print(lst)
# 移除所有值

可变列表list常用操作 - 插入元素
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)
# 插入一个列表元素
可变列表list常用操作 - 复制
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指向两个列表(虽然两个列表值相同)
可变列表list常用操作 - 排序
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():排序并复制
讲一讲元祖tuple :不可变的“列表”
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d"  # 可以不加括号
tup4 = (50,)  # 元组中只包含一个元素时,需要在元素后面添加逗号

print(tup1[2],tup3[:2])  # 索引、切片和list一样

del tup3 # 元祖不能单独删除内部元素(不可变性),但可以del语句来删除整个元祖
#print(tup3)

print(len(tup1))
print(tup1 + tup2)
print(tup4 * 3)
print(max(tup2),min(tup2))
# 序列通用函数

lst = list(range(10))
tup5 = tuple(lst)
print(tup5)
# tuple()函数:将列表转换为元组

【课程3.4】 文本序列str常用操作

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串
字符串也是序列:文本序列

字符串引号
str1 = "abc"
str2 = 'abc'
str3 = 'my name is "fatbird"'
# 双引号单引号无区别,但文本中有引号的时候要相互交替使用

str4 = '''hello! how are you?
          I`m fine, thank you.'''
# 需要多行字符串时候用三引号 ''' ''',""" """
转义字符:\
print('\'', '\"')  # \',\" :分别输出单引号,双引号
print('hello\nhow do you do?')  # \n:空行
print('\\')  # 输出\,所以文件路径用“/”或者“\\”

#输出结果为:
' "
hello
how do you do?
\
序列通用功能
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))  # 计算字符串长度(思考这里能否把逗号换为"+")

输出结果如下:

True
我很帅没错
handsome handsome handsome handsome 
c g
ab
aceg
6
st长度为: 7
字符串常用功能
# 字符串常用功能

st = "i`m handsome!"
st2 = st.replace('handsome','ugly')
print(st)
print(st2)
st = 'hahaha'
st2 = st.replace('ha','he',2)
print(st2)
# str.replace(old,new,count):修改字符串,count:更换几个

st = "poi01,116.446238,39.940166"
lst = st.split(',')
print(lst)
# str.split(obj):拆分字符串,生成列表

lst = ['poi01', '116.446238', '39.940166']
m = '-'
st = m.join(lst)
print(st)
# str.join():连接字符串,对象为序列

st = 'abcdefg'
print(st.startswith('a'), st.endswith('f'))
# str.startswith(“str”)  判断是否以“str”开头;str.endswith (“str”)  判断是否以“str”结尾

st = 'aBDEAjc kLM'
print(st.upper())  # 全部大写
print(st.lower())  # 全部小写
print(st.swapcase())  # 大小写互换
print(st.capitalize())  # 首字母大写

st = '1234567'
print(st.isnumeric())  # 如果 string 只包含数字则返回 True,否则返回 False.

st = 'DNVAK'
print(st.isalpha())  # 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

st = 'avd   '
print(st.rstrip())  # 删除字符末尾的空格

输出结果如下:

i`m handsome!
i`m ugly!
heheha
['poi01', '116.446238', '39.940166']
poi01-116.446238-39.940166
True False
ABDEAJC KLM
abdeajc klm
AbdeaJC Klm
Abdeajc klm
True
True
avd
格式化字符:在字符串中插入变量
ame = "FATBIRD"
truth = "%s is 好人" %name
print(truth)
# %s 表示我们这里要插入一个变量(字符串),%name代表这里我们插入name → 所以,两个%解决问题

x = 4   
y = "hehe"  
z = 4.2
print("this is %i" %x)
print("this is %s" %y)
print("this is %f" %z)
# %s的s有什么含义:%s %z %f都是格式化字符串,s/i/f分别代表插入字符串的源数据类型:整型/字符型/浮点型

输出结果如下:

FATBIRD is 好人
this is 4
this is hehe
this is 4.200000
格式化字符:数字格式化的那些坑
m = 3.1415926 
print("pi is %f"  %m)
print("pi is %.2f" %m)
# 我只想输出2位小数:%.2f,此处是四舍五入!

m = 10.6
print("pi is %i"  %m)
print("pi is %.0f" %m)
# 区别:%i 不四舍五入,直接切掉小数部分

m = 100 
print("have fun %+i"  %m)
print("have fun %.2f"  % -0.01)
# 显示正号,负号根据数字直接显示

m = 100 
print("have fun % i"  %m)
print("have fun % +i"  %m)
print("have fun % .2f"  %-0.01)
# 加空格,空格和正好只能显示一个

m = 123.123123123 
print("have fun %.2e"  %m)
print("have fun %.4E"  %m)
# 科学计数法 %e  %E

m1 = 123.123123123
m2 = 1.2
print("have fun %g"  %m1)
print("have fun %g"  %m2)
# 小数位数少的时候自动识别用浮点数,数据复杂的时候自动识别用科学计数法

输出结果如下:

pi is 3.141593
pi is 3.14
pi is 10
pi is 11
have fun +100
have fun -0.01
have fun  100
have fun +100
have fun -0.01
have fun 1.23e+02
have fun 1.2312E+02
have fun 123.123
have fun 1.2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容