python字符串,列表,元组,字典的基本操作
python字符串,列表,元组,字典的基本操作
文章目录
- python字符串,列表,元组,字典的基本操作
- 一、字符串
- 1.1字符串的输出
- 1.2字符串的输入
- 1.3下标和切片
- 1.4 字符串常见操作
- 1.4.1 find
- 1.4.2 index
- 1.4.3 count
- 1.4.4 replace
- 1.4.5 split
- 1.4.6 capitalize
- 1.4.7 title
- 1.4.8 startswith
- 1.4.9 endswith
- 1.4.10 lower
- 1.4.11 upper
- 1.4.12 ljust
- 1.4.13 rjust
- 1.4.14 center
- 1.4.15 lstrip
- 1.4.16 rstrip
- 1.4.17 strip
- 1.4.18 rfind
- 1.4.19 rindex
- 1.4.20 partition
- 1.4.21 rpartition
- 1.4.22 splitlines
- 1.4.23 isalpha
- 1.4.24 isdigit
- 1.4.25 isalnum
- 1.4.26 isspace
- 1.4.27 jion
- 二、列表
- 1.1 列表介绍
- 1.2列表的循环遍历
- 1.3 列表的常见操作
- 1.3.1 append(增)
- 1.3.2 extend和append的比较(增)
- 1.3.3 insert(增)
- 1.3.4 修改下标(改)
- 1.3.5 in ,not in(查)
- 1.3.6 index(查)
- 1.3.7 count(查)
- 1.3.8 del(删除)
- 1.3.9 pop(删除)
- 1.3.10 remove(删除)
- 1.3.11 sort, reverse(排序)
- 1.3.11 列表嵌套应用
一、字符串
1.1字符串的输出
name = 'qxt'
position = 'student'
qq="110120119"
wx="qxtzmr"
school="清华北大"
address = '江西赣州'print('--------------------------------------------------')
print("姓名:%s" % name)
print("职位:%s" % position)
print("QQ:%s" % qq)
print("微信:%s" % wx)
print("学校:%s" % school)
print("居住地址:%s" % address)
print('--------------------------------------------------')
输出结果:
--------------------------------------------------
姓名:qxt
职位:student
QQ:110120119
微信:qxtzmr
学校:清华北大
居住地址:江西赣州
--------------------------------------------------
1.2字符串的输入
QQ = input('请输入您的QQ号:')
print("用户名为:%s" % QQ)QQ_password = input('请输入您的QQ密码:')
print("密码为:%s" % QQ_password)
输出结果:
请输入您的QQ号:5201314
用户名为:5201314
请输入您的QQ密码:110120119
密码为:110120119
1.3下标和切片
下标:
#注意 下标是从0开始计算下标,不是从1
name = '邱勋涛真的太TM帅了'print(name[0])
print(name[1])
print(name[2])
print(name[3])
print(name[4])
print(name[5])
print(name[6])
print(name[7])
print(name[8])
print(name[9])
输出结果:
邱
勋
涛
真
的
太
T
M
帅
了
切片:
例1:
#注意 下标是从0开始计算下标,不是从1
name = '邱勋涛真的太TM帅了'print(name[0:10])#0代表最开始的下标,10代表最后一个下标,意思是只能取0(包括0)到10(不包括10)的下标
输出结果:
邱勋涛真的太TM帅了
例2:
name = '邱勋涛真的太TM帅了'print(name[2:6])#打印下标2到5的
打印结果:
涛真的太
例3:
name = '邱勋涛真的太TM帅了'print(name[2:])#打印下标2到后面全部的
输出结果
涛真的太TM帅了
例4:
name = '邱勋涛真的太TM帅了'print(name[:])#打印全部
输出结果:
邱勋涛真的太TM帅了
例5:
name = '邱勋涛真的太TM帅了'print(name[1:-2])#打印下标为1开始到倒数第三个
print(name[2:-4])#打印下标为2到倒数第五个
输出结果:
勋涛真的太TM
涛真的太
例6:
name = '邱勋涛真的太TM帅了'print(name[-4:-2])#打印下标为-4(从后往前输第四个)开始到倒数第三个
print(name[-6:-4])#打印下标为-6(从后往前输第六个)开始到倒数第四个
输出结果:
TM
的太
1.4 字符串常见操作
1.4.1 find
例1:
#find相关操作
#语法:str.find(str, beg=0 end=len(string))
# str --- 此选项指定要搜索的字符串
# beg --- 这是开始索引,默认情况下为 0
# end ---这是结束索引,默认情况下它等于字符串的长度
#返回值---检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
contents = 'I love you forever'
qxt = contents.find('love')
print(qxt)
输出结果:
2
例2:
contents = 'I love you forever'
qxt = contents.find('love',0 , 1)
print(qxt)
输出结果:
-1
1.4.2 index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常
contents = 'I love you forever'
qxt = contents.index('love',0,1)
print(qxt)
1.4.3 count
例1:
#语法:str.count(sub, start= 0,end=len(string))
# sub ---搜索的子字符串
# start ---字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0
# end --- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置
#返回值---sub出现的次数
contents = 'I love you forever,I love you forever'
qxt = contents.count('love')#获取love出现在contents的次数
print(qxt)
输出结果:
2
例2:
contents = 'I love you forever,I love you forever'
qxt = contents.count('e')#获取e出现在contents的次数
print(qxt)
输出结果:
6
1.4.4 replace
#语法---str.replace(str1, str2, count)
contents = 'I love you love forever'
xt=contents.replace('love',"loving")这里的count默认为-1,全部替换
qxt = contents.replace('love',"loving",1)# count为1代表如果contents有多个匹配的值,那么替换一次,可以根据需求指定次数,如果不写默认值是-1,全部都替换
print(xt)#I loving you loving forever
print(qxt)#I loving you love forever
输出结果:
I loving you loving forever
I loving you love forever
1.4.5 split
例1:
# 以 seq为分隔符对字符串mystr分隔,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串, 最后的结果存放到列表里
#
# str.split(seq, maxsplit)
str="2021-520-1314"
str01=str.split("-")#相当于把 - 去掉,其他的字符串依次存入列表
str02=str.split("0")#相当于把 0 去掉,其他的字符串依次存入列表
print(str01)
print(str02)mystr="qxt zmr qxh zxb qxh qjy qc "
str03=mystr.split()#相当于把空格去掉,其他的字符串依次存入列表
print(str03)
输出结果:
['2021', '520', '1314']
['2', '21-52', '-1314']
['qxt', 'zmr', 'qxh', 'zxb', 'qxh', 'qjy', 'qc']
例2:
mystr="qxt zmr qxh zxb qxh qjy qc qx qx "
str03=mystr.split("qx")#相当于把qx去掉,其他的字符串依次存入列表,会多出空字符串
print(str03)
输出结果:
['', 't zmr ', 'h zxb ', 'h qjy qc ', ' ', ' ']
例3:
str="2021-520-521-1314"
str01=str.split("-",2)#相当于把前俩个 - 去掉,其他的字符串依次存入列表
print(str01)
输出结果:
['2021', '520', '521-1314']
1.4.6 capitalize
str="wo ai ni "
str01=str.capitalize()#capitalize:把开头第一个字母转化为大写
print(str01)
输出结果:
Wo ai ni
1.4.7 title
str="wo ai ni "
str01=str.title()#title:把每个单词首字母转化为大写
print(str01)
输出结果:
Wo Ai Ni
1.4.8 startswith
str="wo ai ni "
str01=str.startswith("wo")#startswith:检查字符串是否是以 wo 开头, 是则返回 True,否则返回 False(True)
str02=str.startswith("ai")#startswith:检查字符串是否是以 wo 开头, 是则返回 True,否则返回 False(False)
print(str01)
print(str02)
输出结果:
True
False
1.4.9 endswith
str="wo ai ni"
str01=str.endswith("ni")# endswith:检查字符串是否以ni结束,如果是返回True,否则返回 False.(True)
str02=str.endswith("ai")# endswith:检查字符串是否以ni结束,如果是返回True,否则返回 False.(False)
print(str01)
print(str02)
输出结果
True
False
1.4.10 lower
str="Wo Ai NI"
str01=str.lower()#lower:把所有大写的字母转化为小写
print(str01)
输出结果:
wo ai ni
1.4.11 upper
str="wo ai ni yi sheng yi shi"
str01=str.upper()#lower:把所有小写的字母转化为大写
print(str01)
输出结果:
WO AI NI YI SHENG YI SHI
1.4.12 ljust
# 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
# 语法----str.ljust(width)
str01 = 'hello'
str02 = str01.ljust(10)#ljust:hello占五个字符,向右填充5个才能到达10
print(str02, end='-')#end='-'这个是为了让我们更清楚右边还有5个空格
输出结果:
hello -
1.4.13 rjust
# 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
# 语法----str.ljust(width)
str01 = 'hello'
str02 = str01.rjust(10)#ljust:hello占五个字符,向左填充5个才能到达10
print(str02)
输出结果:
hello
1.4.14 center
# 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
# str.center(width)
str01 = 'qxtqxtqxt'
str02 = str01.center(26)#center:在25个字符中居中
print(str02,end="-")#end='-'这个是为了让我们更清楚左右两边还有空格
输出结果:
qxtqxtqxt -
1.4.15 lstrip
str01 = ' qxtqxtqxt'
str02 = str01.lstrip()#lstrip:删除左边空白字符
print(str02)
输出结果:
qxtqxtqxt
1.4.16 rstrip
str01 = 'qxtqxtqxt '
str02 = str01.rstrip()#lstrip:删除右边空白字符
print(str02)
输出结果:
qxtqxtqxt
1.4.17 strip
str01 = ' zmrzmrzmr '
str02 = str01.strip()#strip:删除两端空白字符
print(str02)
输出结果:
zmrzmrzmr
1.4.18 rfind
# 类似于 find()函数,不过是从右边开始查找.
# mystr.rfind(str, start=0,end=len(mystr) )
str01 = 'hello world hello python'
print(str01.rfind('hello')) # 12
print(str01.rfind('nihao')) # -1
# 注意下面代码的查找范围
print(str01.rfind('hello', 0, 5)) # 0)
输出结果:
12
-1
0
1.4.19 rindex
# 类似于 index(),不过是从右边开始.
# str.rindex( str, start=0,end=len(mystr))
str01 = 'hello world hello python'
print(str01.rindex('hello'))
print(str01.rindex('nihao'))
输出结果:
1.4.20 partition
str01 = 'hello world hello python'
str02=str01.partition("world")#partition:把str01以str分割成三部分,str前,str和str后
print(str02)
输出结果:
('hello ', 'world', ' hello python')
1.4.21 rpartition
str01 = 'hello world hello python world'
str02=str01.rpartition("world")#rpartition:类似于 partition()函数,不过是从右边开始.
print(str02)
输出结果:
('hello world hello python ', 'world', '')
1.4.22 splitlines
str01 = 'hello\nworld\nhello\nqxt'
print(str01)
str02 = str01.splitlines()#splitlines:按照行分隔,返回一个包含各行作为元素的列表
print(str02)
输出结果:
hello
world
hello
qxt
['hello', 'world', 'hello', 'qxt']
1.4.23 isalpha
str01 = 'i love you 999'
str02 = str01.isalpha()#isalpha:如果 str01 所有字符都是字母 则返回 True,否则返回 False
print(str02)
str03="hhhhhhhhh"
str04=str03.isalpha()#isalpha:如果 str03 所有字符都是字母 则返回 True,否则返回 False
print(str04)
输出结果:
False
True
1.4.24 isdigit
str01 = '999'
str02 = str01.isdigit()#isdigit:如果 str01 只包含数字则返回 True 否则返回 False.
print(str02)
str03="hhhhhhhhh66666"
str04=str03.isdigit()#isalpha:如果 str03 所有字符都是字母 则返回 True,否则返回 False
print(str04)
输出结果:
True
False
1.4.25 isalnum
str01 = '999'
str02 = str01.isalnum()#isalnum:如果 str01 所有字符都是字母或数字则返回 True,否则返回 False
print(str02)
str03="hhhhhhhhh"
str04=str03.isalnum()#isalnum:如果 str03 所有字符都是字母或数字则返回 True,否则返回 False
print(str04)
str05="hhhhhhh6666666666 999"
str06=str05.isalnum()#isalnum:如果 str05 所有字符都是字母或数字则返回 True,否则返回 False
print(str06)
输出结果:
True
True
False
1.4.26 isspace
str =' '
str01 = str.isspace() # 如果 str 中只包含空格,则返回 True,否则返回 False.
print(str01)
str02='666999'
str03=str02.isspace()# 如果 str02 中只包含空格,则返回 True,否则返回 False.
print(str0
输出结果:
True
False
1.4.27 jion
str='----'
list=["jiang","xi","sheng","gan","zhou","shi"]#str 中每个元素后面插入str,构造出一个新的字符串
list01=str.join(list)
print(list01)
输出结果:
jiang----xi----sheng----gang----zhou----shi
二、列表
1.1 列表介绍
list = ["jiang", "xi", "sheng", "gan", "zhou", "shi"]
print(list[0])#数字代表每个列表里面字符串的下标
print(list[1])
print(list[2])
print(list[3])
print(list[4])
print(list[5])
输出结果:
jiang
xi
sheng
gan
zhou
shi
1.2列表的循环遍历
例1:for 循环
#for循环打印列表内容
list = ["jiang", "xi", "sheng", "gan", "zhou", "shi"]
for name in list:print(name)
输出结果:
jiang
xi
sheng
gan
zhou
shi
例2:while循环
# while循环打印列表内容
list = ["jiang", "xi", "sheng", "gan", "zhou", "shi"]
lenth = len(list) # 获取列表的长度
print("列表的长度:%d" % lenth)
i = 0
while i < lenth:print(list[i])i += 1
输出结果:
列表的长度:6
jiang
xi
sheng
gan
zhou
shi
1.3 列表的常见操作
1.3.1 append(增)
#append:可以向列表添加元素
list01=["鹿晗","吴一凡","黄子韬","张艺兴"]
list01.append("邱勋涛")
print(list01)
输出结果:
['鹿晗', '吴一凡', '黄子韬', '张艺兴', '邱勋涛']
1.3.2 extend和append的比较(增)
extend可以将另一个集合中的元素逐一添加到列表中
append可以将另一个集合添加到列表中
#extend可以将另一个集合中的元素逐一添加到列表中
list01=["1","2","3"]
list02=["4","5","6"]
list01.extend(list02)
print("entend输出结果:%s"%list01)#append可以将另一个集合添加到列表中
list03=["1","2","3"]
list04=["4","5","6"]
list03.append(list04)
print("append输出结果:%s"%list03)
输出结果:
entend输出结果:['1', '2', '3', '4', '5', '6']
append输出结果:['1', '2', '3', ['4', '5', '6']]
1.3.3 insert(增)
# insert(index, object) 在指定位置index前插入元素object
list01=["鹿晗","吴一凡","黄子韬","张艺兴"]
list01.insert(1,"邱勋涛")
print(list01)
输出结果:
['鹿晗', '邱勋涛', '吴一凡', '黄子韬', '张艺兴']
1.3.4 修改下标(改)
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
list01=["鹿晗","吴一凡","黄子韬","张艺兴"]print("-----修改之前,列表list01的数据-----")
for name in list01:print(name)list01[1]="邱勋涛"#下标为1的修改为邱勋涛
list01[3]="牛马子"#下标为3的修改为牛马子
print("-----修改之后,列表list01的数据-----")
for name in list01:print(name)
输出结果:
-----修改之前,列表list01的数据-----
鹿晗
吴一凡
黄子韬
张艺兴
-----修改之后,列表list01的数据-----
鹿晗
邱勋涛
黄子韬
牛马子
1.3.5 in ,not in(查)
例1:in
list01=["鹿晗","吴一凡","黄子韬","张艺兴"]find_name=input("请输入你要查找的名字:")if find_name in list01:print("找到了相同的名字")
else:print("没有找到相同的名字")
输出结果1:
请输入你要查找的名字:鹿晗
找到了相同的名字
输出结果2:
请输入你要查找的名字:邱勋涛
没有找到相同的名字
例2:not in
list01=["鹿晗","吴一凡","黄子韬","张艺兴"]find_name=input("请输入你要查找的名字:")if find_name not in list01:print("没有到了相同的名字")
else:print("找到了相同的名字")
输出结果1:
请输入你要查找的名字:邱勋涛
没有到了相同的名字
输出结果2:
请输入你要查找的名字:吴一凡
找到了相同的名字
1.3.6 index(查)
#语法: L.index(obj[,start=0[,stop=len(L)]])
# 参数:
# obj -- 查找的对象。
# start -- 可选参数,开始索引,默认为0。(可单独指定)
# stop -- 可选参数,结束索引,默认为列表的长度。(不能单独指定
#返回值:如果包含检索的对象返回开始的索引值,否则抛出异常。list01=["鹿晗","吴一凡","黄子韬","张艺兴"]
list01.index("张艺兴",0,1)
print(list01)
1.3.7 count(查)
list01=["a",'b','c','a','d','d']
print(list01.count('a'))#count:数量,查询列表里面有多少个a
输出结果:
2
1.3.8 del(删除)
del:根据下标进行删除
movieName = ['邱勋涛', '方钻', '马盛瑶', '施启斌', '牛马子', '颠佬']print('------删除之前------')
for tempName in movieName:print(tempName)del movieName[2]print('------删除之后------')
for tempName in movieName:print(tempName)
输出结果:
------删除之前------
邱勋涛
方钻
马盛瑶
施启斌
牛马子
颠佬
------删除之后------
邱勋涛
方钻
施启斌
牛马子
颠佬
1.3.9 pop(删除)
pop:删除最后一个元素
movieName = ['邱勋涛', '方钻', '马盛瑶', '施启斌', '牛马子', '颠佬']print('------删除之前------')
for tempName in movieName:print(tempName)movieName.pop()print('------删除之后------')
for tempName in movieName:print(tempName)
输出结果:
------删除之前------
邱勋涛
方钻
马盛瑶
施启斌
牛马子
颠佬
------删除之后------
邱勋涛
方钻
马盛瑶
施启斌
牛马子
1.3.10 remove(删除)
remove:根据元素的值进行删除
movieName = ['邱勋涛', '方钻', '马盛瑶', '施启斌', '牛马子', '颠佬']print('------删除之前------')
for tempName in movieName:print(tempName)movieName.remove("方钻")print('------删除之后------')
for tempName in movieName:print(tempName)
输出结果:
------删除之前------
邱勋涛
方钻
马盛瑶
施启斌
牛马子
颠佬
------删除之后------
邱勋涛
马盛瑶
施启斌
牛马子
颠佬
1.3.11 sort, reverse(排序)
1.sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list逆置。
qxt = [2, 6, 3, 9, 12, 10, 8]
qxt.reverse()#将列表顺序逆转排序
print(qxt)
print("--------------------------------")
qxt.sort()#将列表内容从小到大排序
print(qxt)
print("----------------------------------")
qxt.sort(reverse=True)#参数reverse=True可改为倒序,由大到小
print(qxt)
输出结果:
[8, 10, 12, 9, 3, 6, 2]
--------------------------------
[2, 3, 6, 8, 9, 10, 12]
----------------------------------
[12, 10, 9, 8, 6, 3, 2]
1.3.11 列表嵌套应用
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
import random# 定义一个列表用来保存3个办公室
offices = [[],[],[]]# 定义一个列表用来存储8位老师的名字
names = ['A','B','C','D','E','F','G','H']i = 0
for name in names:index = random.randint(0,2)offices[index].append(name)i = 1
for tempNames in offices:print('办公室%d的人数为:%d'%(i,len(tempNames)))i+=1for name in tempNames:print("%s"%name,end='')print("\n")print("-"*20)
输出结果:
办公室1的人数为:3
AEG
--------------------
办公室2的人数为:4
BCFH
-------------------
办公室3的人数为:1
D
--------------------
python字符串,列表,元组,字典的基本操作相关推荐
- Python 字符串/列表/元组/字典之间的相互转换 - Python零基础入门教程
目录 一.字符串 str 与列表 list 1.字符串转列表 2.列表转字符串 二.字符串 str 与字典 dict 1.字符串转字典 2.字典转字符串 三.列表 list 与字典 dict 1.列表 ...
- python中列表 元组 字典 集合的区别
参考文章:python中列表 元组 字典 集合的区别
- python字符串转换元组_python 字符串,列表,元组,字典相互转换
1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回: {'age': 7, 'name': 'Zara', 'cla ...
- python入门——列表+元组+字典+集合
列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...
- day02 格式化输出 运算符 编码 字符串 列表 元组 字典 set集合 深浅拷贝
day02学习大纲 一. 格式化输出: %s 占位字符串 %d 占位数字 "xxx%sx %sxx" % (变量, 变量) 二. 运算符: a+=b a = a + b and 并 ...
- python字符串/列表/集合/字典/元组应用
#字符串 str # str='1234567898' # str1='abcdefga' # str2='Abcdefg' # str3='ABCDEFG' #print(str1.title()) ...
- 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)
4.1 数字运算 编程是将问题数据化的一个过程,数据离不开数字,Python的数字运算规则与我们学习的四则运算规则是一样的,即使不使用Python来编写复杂的程序,也可以将其当作一个强大的计算器.打开 ...
- python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...
---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...
- python 高级变量类型(列表/元组/字典/字符串)
前言 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 -- 非零即真 假 False 0 复数型 ...
- Python基础之day03-字符串,列表,元组,字典
Python基础之day03-字符串,列表,元组,字典 文章目录 Python基础之day03-字符串,列表,元组,字典 一.字符串 二.下标与字符串切片 三.列表 四.元祖 五.字典 六.公用方法 ...
最新文章
- Nat. Commun. | 机器学习在化学发现中的应用
- [cocos2dx]防止八门神器修改内存数据
- OVS+Docker
- 类型转换,类与类之间的转换,继承关系,继承与静态变量,子类父类重名,多继承,虚基类
- premature end of file错误
- TCP 之 RST 原因分析
- 详细叙述ajax的详情,ajax的配置详情、ajax的调用解释、ajax的中文乱码和ajax的表单提交(内有实例)...
- SSLOJ 1335.蛋糕切割
- deploy owned private docker registry based on docker HUB registry image
- matepad和鸿蒙,华为MatePadPro配置速看:搭载了鸿蒙系统的它真比iPadPro强?
- 阿尔伯塔大学知名计算机工程学教授,阿尔伯塔大学计算机工程硕士解析
- android官方开发文档中学英文-uniformly distributed int(均匀分布的整数)
- html做战网首页,战网更新agent一半不动
- 高中python教程_杭师大顶级初高中Python课程师训,酷哥优秀教师授课获赞!
- 唯众本科Web前端专业解决方案
- 好吃易做的简单菜谱家常菜做法
- 华为云IOT平台设备获取api调用笔记
- sorted排序详解
- 【Visual C++】游戏开发五十一 浅墨DirectX教程十九 网格模型进阶之路
- 【文件上传绕过】——解析漏洞_IIS7.0 | IIS7.5 | Nginx的解析漏洞