Python基础知识(二)

上节简单介绍了Python中版本、注释以及数据类型,本节着重介绍Python中字符串、列表、元组的基本用法和注意事项。
往期目录
Python基础知识(一)

补充知识:序列的通用操作

序列的通用操作(str,list,tuple):取值,切片,步长,通用操作即指str,list,tuple都适用的操作。以下以字符串举例:

#初始化字符串
s = '123456789'

#取值  按索引取值,自左向右从0开始
s[0]   
>>>'1'

#切片  给出起始索引和结束索引取出片段,[1:2]前者为起始索引,后者是结束索引
s[1:2]   
>>>'23'

#步长  [1:2:3] 3是指步长,在切片内每三个元素为一组取出第一个元素。如果切片内元素个数小于步长,则默认取出切片内全部元素;
s[1:2:3]  
>>>'2'
s[::3]  
>>>'147' 
#注:不设置起始索引和结束索引,默认取所有元素,步长为3,在切片每三组取出第一个元素

#用len()计算序列元素的个数
len(s)  
>>>9

一.列表的常用方法

  1. 创建列表
>>>ls = list()  

2.在列表末尾添加单个元素

>>>ls.append('a')   #参数是元素对象
>>>ls
['a']

3.在列表末尾添加多个元素

>>>ls.extend([1,2,3])  #类似于 +拼接
>>>ls
['a', 1, 2, 3]

注:ls.extend(obj),obj可以是元素、列表、字典,如是字典则只会添加字典的key 。

4.指定位置插入元素

ls.insert(2,'b')  #(索引,元素) 
>>>ls
['a',1,'b',2,3]

注:若要插入列表末尾索引用len(ls),如果索引值超出列表,则默认插入到列表末尾,不考虑插入索引越界。

5.取出列表中元素的索引

>>>ls.index('a')  
0
>>>ls.index('c')
ValueError: 'c' is not in list
>>>lss = ['a','b','b','b','c']
>>>lss.index('b',2)
2
>>>lss.index('b',1,2)
1

注:如果元素不存在列表中会报错;如果元素中存在多个相同元素,可以指定从第几个索引开始取;index('b',2)指从列表中第2个索引开始到结尾这一片段中取出最左边的一个元素'b'的索引;index('b',1,2)指取出列表从索引1到索引2这一片断中最左边的一个元素‘b'的索引,如果取不到元素也报错。

6.统计某个元素在列表中出现的次数

>>>ls.count('a')  
1
>>> ls.count('c')
0

注:如果元素不存在列表中,不报错,返回值是0

7.出栈,指将指定元素移出列表,可指定位置(索引),默认值是-1,返回值是索引对应的元素

>>>ls.pop()
3
>>>ls
['a',1,'b',2]
>>>ls.pop(0)
'a'
>>>ls
[1,'b',2]  

8.移除单个元素

>>>ls.remove('b')
>>>ls
[1,2]
ls = [1,2,1,2,1,2]
ls.remove(1)
>>>ls
[2,1,2,1,2]

注:如果列表中存在多个相同元素,默认移除最左边开始第一个

9.清空整个列表

>>>ls.remove()
>>>ls

10.复制整个列表

>>>ls1 = [1,2,3,4]
>>>ls2 = ls1.copy()
>>>ls2
[1,2,3,4]

11.反向列表中的元素

>>>ls1.reverse()
>>>ls1
[4,3,2,1]

12.对原列表进行排序,原列表中元素要相同

>>>ls1 = [2,1,3,5,4]
>>>ls1.sort()
>>>ls1
[1,2,3,4,5]
>>>ls2 = ['b','a','c']
>>>ls2.sort()
>>>ls2
['a','b','c']
>>>ls3 = [[1,2,2],(1,),'11232333']
>>>ls3.sort()
TypeError: '<' not supported between instances of 'tuple' and 'list'
>>>ls3.sort(key=len)
>>>ls3
[(1,), [1, 2, 2], '11232333']
>>>ls3.sort(key=len,reverse=True)
>>>ls3
['11232333', [1, 2, 2], (1,)]

注:L.sort(key=None, reverse=False),默认有两个参数,key会自动根据列表中类型变化(前提是元素类型相同),也可指定根据何种类型排序,key = int / str / len / lambda ,reverse默认为升序;如果元素类型不同需要指定按何种标准排序,且元素都适用这一标准,如ls3

13.内置函数

内置函数会返回一个新的列表对象,而不改变原列表;
排序:sorted(obj,key=None,reverse=False)
反向:reversed(obj)

>>>sorted(ls3,key=len)
[(1,), [1, 2, 2], '11232333']
>>>ls3
['11232333', [1, 2, 2], (1,)]
>>>reversed(ls3)
[(1,), [1, 2, 2], '11232333']
>>>ls3
['11232333', [1, 2, 2], (1,)]

二.元组的常用方法

1.创建元组

>>>tp = ('a','b','a','b','a','b')

注意:声明只有一个元素的元组时要加逗号,如 tp = ('a',)

2.统计元素在元组中出现的次数

>>>tp.count('a')
3

3.取出元组中元素的索引

>>>tp.index('a')
0
>>>tp.index('a',1)
2
>>>tp.index('a',2,4)
2
>>>tp.index('c')
ValueError: tuple.index(x): x not in tuple
>>>tp.index('a',1,2)
ValueError: tuple.index(x): x not in tuple

注:'a'在元组中有多个,默认取出最左边的第一个;也可指定取出第几个'a',自左向右从0开始。如果元素不存在或指定位置的元素不存在,会报错。

三.字符串的常用操作

1.创建字符串

>>>s = '121212343434'

2.统计子字符串在字符串中出现的次数

>>>s.count('1')
3
>>>s.count('2',2,3)
1

注:在字符串中count方法带可选参数,可指定在起始索引到结束索引切片中统计次数

3.取出子字符串的索引:S.index(sub[, start[, end]]) -> int

>>>s.index('1')
0
>>>s.index('2',1,3)
1

注:取出子字符串的索引,或取出子字符串在指定切片中的索引,有重复字符默认取出最左边第一个。取不到则报错。

4.查找字符的索引:S.find(sub[, start[, end]]) -> int

>>>s.find('1')
0
>>>s.find('2',1,2)
1

注:该方法和index类似,不同的是如果取不到,index报错;find不报错,返回-1。

5.字符串替换:S.replace(old, new[, count]) -> str

>>>s.replace('1','x')
'x2x2x2343434'
>>>s.replace('2','y',2)
'1y1y12343434
>>>s
'121212343434'

注:字符串是不可变的,所以替换并没有改变原有字符串,而是得到了一个新的字符串。s.replace('2','y',2) 2是替换的个数。

6.字符串分割:S.split(sep=None, maxsplit=-1) -> list of strings

>>>s.split()
['121212343434']
>>> s.split('2')
['1', '1', '1', '343434']
>>> s
'121212343434'
>>> s.split('2',2)
['1', '1', '12343434']

注:s.split()返回一系列用空格分割的字符串列表;s.split('2',2)按'2'分割,最多分割2次。

7.字符串判其他操作

#判断字符串是否以x开头
s.startswith(x)
#判断字符串是否以x结尾
s.endswith(x)
#字符串转小写
s.lower()
#字符串转大写
s.upper()
#测试是否全是小写
s.islower ()
#测试是否全是大写
s.isupper ()
#测试是否全是字符,都是返回 True,否则返回 False
s.isalpha ()
#测试是否全是数字,都是返回 True 否则返回 False
s.isdigit () 

新手上路多多指教!错误之处敬请指出来!下节介绍集合和字典!

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

推荐阅读更多精彩内容

  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,642评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,656评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 在这样的季节 在这样的夜晚 我总愿一个人出去 悄悄的走出家门 顺着小路 沿着堤岸 走向田野 夏夜 大山静静的卧着 ...
    山楂树123阅读 221评论 0 3
  • 001 提问式学习,更能有助于我们形成长期的,一贯的思考路径。而没有问题引导,我们只能零碎的,随性的获取一些不相干...
    z111111阅读 163评论 0 0