三、字符串、列表、元组、字典
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 元素是否不存在 字符串、列表、元组、字典