python字符串,列表,元组,字典的基本操作

python字符串,列表,元组,字典的基本操作

一、字符串

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+=1
    for name in tempNames:
        print("%s"%name,end='')
    print("\n")
    print("-"*20)

输出结果:

办公室1的人数为:3
AEG
--------------------
办公室2的人数为:4
BCFH
-------------------
办公室3的人数为:1
D
--------------------

猜你喜欢

转载自blog.csdn.net/Qiuxuntao/article/details/117067916