Python课堂笔记——三、字符串、列表、元组、字典

三、字符串、列表、元组、字典


1.字符串介绍

2.字符串输出

3.字符串输入

4.下标和切片

5.字符串常见操作

6.列表介绍

7.列表的循环遍历

8.列表的常见操作

9.列表的嵌套

10.元组

11.字典介绍

12.字典的常见操作1

13.字典的常见操作2

14.字典的遍历

15.公共方法

16.引用


1.字符串介绍

字符串:双引号或者单引号中的数据,就是字符串


2.字符串输出

<1> demo:

name = "xiaoming"

position = "讲师"

address = "北京市"

print("------------------------------")

print("姓名:%s"%name)

print("职位:%s"%position)

print("公司地址:%s"%address)

print("------------------------------")


3.字符串输入

<1> demo:

userName = input("请输入用户名:")

print("用户名为:%s"%userName)


4.下标和切片

<1> 下标

所谓下标,就是编号,通过这个编号就能找到相应的存储空间。

name = "abcdef"

name[0] = a

name[1] = b

name[2] = c

<2> 切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长],选取的区间属于左闭右开型,从起始位开始,到结束位前一位结束(不包含结束位本身)

demo1:

name = "abcdef"

print(name[0:3]) = "abc" #取下标0-2的字符

demo2:

name = "abcdef"

print(name[0:-1]) = "abcde" #取下标为0开始到最后第2个之间的字符

demo3:

name = "abcdef"

print(name[0:]) = "abcdef" #取下标为0开始到最后的字符

demo4:

name = "abcdef"

print(name[1:5:2]) = "bd" #以2为步长,从下标1取到下标5之间的字符


5.字符串常见操作

设有字符串 mystr = "hello world itcast and itcastcpp"

<1> find: 检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1

mystr.find(str, start=0, end=len(mystr))

<2> index: 跟find()方法一样,只不过如果str不在mystr中会报一个异常

mystr.index(str, start=0, end=len(mystr))

<3> count: 返回str在start和end之间在mystr里面出现的次数

mystyr.count(str, start=0, end=len(mystr))

<4> replace: 把mystr中的str1替换成str2,如果count指定,则替换不超过count次

mystr.replace(str1, str2, mystr.count(str1))

<5> split: 以str为分隔符切片mystr,如果maxsplit有指定值,则仅分隔maxsplit个字符串

mystr.split(" ", 2)

<6> capitalize: 把字符串的第一个字符大写

mystr.capitalize()

<7> title: 把字符串的每个单词首字母大写

str.title

<8> startwith: 检查字符串是否以obj开头,是返回True,否则返回False

mystr.startwith(obj)

<9> endswith: 检查字符串是否以obj结束,是返回True,否则返回False

mystr.endwith(obj)

<10>lower: 转换mystr中所有大写字符为小写

mystr.lower()

<11>upper: 转换mystr中所有小写字符为大写

mystr.upper()

<12>ljust: 返回一个原字符串左对齐,并使用空格填充至长度width的新字符串

mystr.ljust(width)

<13>rjust: 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串

mystr.rjust(width)

<14>center: 返回一个原字符串居中,并使用空格填充至长度width的新字符串

mystr.center(width)

<15>lstrip: 删除mystr左边的空白字符

mystr.lstrip()

<16>rstrip: 删除mystr右边的空白字符

mystr.rstrip()

<17>strip: 删除mystr两端的空白字符

mystr.strip()

<18>rfind: 类似于find函数,不过是从右边开始找

mystr.rfind(str, start=0, end=len(mystr))

<19>rindex: 类似于index函数,不过是从右边开始找

mystr.rindex(str, start=0, end=len(mystr))

<20>partition: 把mystr以str分割成三部分,str前,str和str后

mystr.partition(str)

<21>rpartition: 类似与partition函数,不过是从右边开始

mystr.rpartition(str)

<22>splitlines: 按照行分隔(字符串中有\n),返回一个包含各行作为元素的列表

mystr.splitlines()

<23>isalpha: 如果mystr中所有字符都是字母,则返回True,否则返回False

mystr.isalpha()

<24>isdigit: 如果mystr中所有字符都是数字,则返回True,否则返回False

mystr.isdigit()

<25>isalnum: 如果mystr中所有字符都是数字或字母,则返回True,否则返回False

mystr.isalnum()

<26>isspace: 如果mystr中只包含空格,则返回True,否则返回False

mystr.isspace()

<27>join: mystr中每个字符后面插入str,构造出一个新的字符串

mystr.join(str)

demo:

str = ""

li = ["my","name","is","sunhaoyi"]

str.join(li) = my name is sunhaoyi


6.列表介绍

<1>列表的格式:

namelist = ["xiaowang","xiaozhang","xiaohua",1,2,[3,4,5]]

注:python中列表比C语言的数组强大的地方在于列表中的元素可以是不同类型的

<2>打印列表:

demo:

nameList = ["xiaowang","xiaozhang","xiaohua"]

print(nameList[0])

print(nameList[1])

print(nameList[2])


7.列表的循环遍历

<1>使用for循环

demo:

nameList = ["xiaowang","xiaozhang","xiaohua"]

for name in nameList:

print(name)

<2>使用while循环

demo:

nameList = ["xiaowang","xiaozhang","xiaohua"]

length = len(nameList)

i = 0

while i < lengh:

print(nameList[i])

i += 1


8.列表的相关操作(添、删、改、查)

<1>添加元素(增: append; extend; insert)

append: 通过append可以向列表添加元素

demo:

A = ["xiaowang","xiaozhang","xiaohua"]

A.append(sunhaoyi)

A = ["xiaowang","xiaozhang","xiaohua","sunhaoyi"]

extend: 通过extend可以将另一个集合中的元素逐一添加到列表中

demo:

a = [1,2]

b = [3,4]

a.extend(b)

a = [1,2,3,4]

insert: insert(index,object)在指定位置index前插入元素object

demo:

a = [0,1,2]

a.insert(1,3)

a = [0,3,1,2]

<2>修改元素("改"):

修改元素时,要通过下标来确定要修改的是哪个元素,然后才能进行修改

demo:

A = ["xiaowang","xiaozhang","xiaohua"]

A[1] = "xiaolu"

A = ["xiaolu","xiaozhang","xiaohua"]

<3>查找元素("查"in,not in, index, count)

所谓的查找,就是看看指定的元素是否存在

3.1 in(存在),如果存在那么结果为True,否则为False

    not in(不存在),如果不存在那么结果为True,否则为False

demo1:

nameList = ["xiaowang","xiaozhang","xiaohua"]

findName = "xiaowang"

if fingName in nameList:

print("找到了")

else:

print("没找到")

demo2:

not in也是相同的用法

3.2 index,count

index,count与字符串中的用法相同

<4>删除元素("删",del, pop, remove)

del: 根据下标进行删除

pop: 删除最后一个元素

remove: 根据元素的值进行删除

demo1: del

movieName = ["加勒比海盗","骇客帝国","霍比特人","指环王"]

del movieName[2]

movieName = ["加勒比海盗","骇客帝国","指环王"]

demo2: pop

movieName = ["加勒比海盗","骇客帝国","霍比特人","指环王"]

movieName.pop

movieName = ["加勒比海盗","骇客帝国","霍比特人"]

demo3: remove

movieName = ["加勒比海盗","骇客帝国","霍比特人","指环王"]

movieName.remove("骇客帝国")

movieName = ["加勒比海盗","霍比特人","指环王"]

<5>排序(sort, reverse)

sort: 将list按特定顺序重新排序,默认由小到大,参数reverse=True可改为由大到小

reverse: 将list倒置

demo1:

a = [1,4,2,3]

a.reverse()

a = [3,2,4,1]

demo2:

a = [1,4,2,3]

a.sort()

a = [1,2,3,4]

a.sort(reverse = True)

a = [4,3,2,1]

<6>列表嵌套

类似while循环的嵌套,列表也支持嵌套

一个列表中的元素又是一个列表,那么这就是列表的嵌套

a = [1,2,5,4,[7,4,1]]


9.列表嵌套


10.元组

python中元组与列表类似,不同之处在于元组的元素不能修改。

元组使用(), 列表使用[].


11.字典介绍

<1> python中的字典

info = {"name":"班长", "id":100, "sex":"f", "address":"中国北京"}

<2> 根据键访问值

info = {"name":"班长", "id":100, "sex":"f", "address":"中国北京"}

print(info["name"])-------------->班长

print(info["id"])---------------->100

若访问不存在的键,则会报错

若我们不确定字典中是否存在某个键,又想获取其值得时候,可以使用get方法,还可以设置默认值

demo:

info = {"name":"班长", "id":100, "sex":"f", "address":"中国北京"}

age = info.get("age")

age不存在

age = info.get("age",18)

age = 18


12.字典的常见操作

<1> 修改元素

字典中的每个元素的数据是可以修改的,只要通过key找到,就可以修改

demo1:

info = {"name":"班长", "id":100, "sex":"f", "address":"中国北京"}

newId = 99

info["id"] = int(newId)

info = {"name":"班长", "id":99, "sex":"f", "address":"中国北京"}

<2> 添加元素

demo1:

info = {"name":"班长", "id":100, "sex":"f", "address":"中国北京"}

id = 10

info["newid"] = id

info = {"newid":10, name":"班长", "id":100, "sex":"f", "address":"中国北京"}

<3> 删除元素

3.1 del

3.2 clear()

demo3.1.1: del

info = {"id":10, name":"班长", "id":100, "sex":"f", "address":"中国北京"}

del info["name"]

info = {"id":10,, "sex":"f", "address":"中国北京"}

demo3.1.2: del

info = {"id":10, name":"班长", "id":100, "sex":"f", "address":"中国北京"}

del info

info整个字典就被删除了

demo3.1.3: clear清空整个字典

info = {"id":10, name":"班长", "id":100, "sex":"f", "address":"中国北京"}

info.clear()

info = {}


13.字典的常见操作2

<1> len()

测量字典中,键值对的个数

<2> keys

返回一个包含字典所有key的列表

a.keys()

<3> values

返回一个包含字典所有value的列表

a.values()

<4> items

a.items()

<5> has_key

如果key在字典中,返回True,否则返回False

a.has_key()


14.遍历

<1> 字符串遍历

a_str = "hello itcast"

for char in a_str:

print(char)

----------------->h e l l o  i t c a s t

<2> 列表遍历

a_list = [1,2,3,4,5,6]

for num in a_list:

print(num)

----------------->1 2 3 4 5 6

<3> 元组遍历

a_turple = (1,2,3,4,5)

for num in a_turple:

print(num)

----------------->1 2 3 4 5 6

<4>字典遍历

4.1 遍历字典的键

dict = {"name":"zhangsan","sex"="m"}

for key in dict.keys():

print (key)

---------->name sex

4.2 遍历字典的值

dict = {"name":"zhangsan","sex"="m"}

for value in dict.values():

print (value)

---------->zhangsan m

4.3 遍历字典的元素

dict = {"name":"zhangsan","sex"="m"}

for item in dict.items():

print (item)

---------->("name", "zhangsan")

  ("sex", "m")

4.4 遍历字典的键值对

dict = {"name":"zhangsan","sex"="m"}

for key,value in dict.items():

print ("key = %s, value = %s"%(key,value))

---------->key=name,value=zhangsan

  key=sex,value=m


15.公共方法

<1> 运算符

运算符 描述 支持的数据类型

  +    合并    字符串、列表、元组

  * 复制   字符串、列表、元组

  in 元素是否存在   字符串、列表、元组、字典

not in 元素是否不存在   字符串、列表、元组、字典

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

推荐阅读更多精彩内容