字符串常见操作
my_str = 'hello world neuedu and neueducpp'
1.find()
检查str中是否包含在my_str中,如果在返回开始的索引值,否则返回-1
index1 = my_str.find('neuedu')
print(index1)
index2 = my_str.find('neuedu', 0 , 10)
print(index2)
2.index()
跟find()一样 只不过str不在mystr中要报一个异常
index3 = my_str.index('neuedu', 0 , 10)
# # print(index3)
4.replace()
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次
name= ' hello world haha '
new_name = name.replace('ha', 'Ha')
print(new_name)
name= ' hello world haha '
new_name = name.replace ( 'ha' , 'Ha' , 1 )
print (new_name)
#¥599 ------> $599
price = "¥599"
price = price.replace('¥', '$')
print(price)
5.split()
以str为分隔符分割name,如果maxsplit指定值,那么近分割maxsplit个子串
name = 'hello world ha ha'
name_list = name.split ( " " )
print ( name_list )
name_list1 = name.split ( " " , 2)
print ( name_list1 )
6.capitalize()
把字符串的一个字符大写
my_str2 = my_str.capitalize()
print( my_str2)
7.title()
把字符串的每个单词首字母大写
my_str3 = my_str.title()
print( my_str3 )
8 startwith()
检测字符串是否以str为开头
my_str4 = my_str.startswith( 'hello' )
print( my_str4 )
my_str5 = my_str.startswith( 'hello' )
print ( my_str5)
9 endwith()
检测字符串是否以str结尾
my_str6 = my_str.endswith('cpp')
10.upper()
把字符串的所有变为大写
my_str7 = my_str.upper()
11.lower()
字符串的所有变为小写
my str8 = my_str7.lower()
print(my_str8)
12.rjust()
返回一个原字符串右对齐的并用空格填充
my_str_space = "hello"
new_my_str_space = my_str_space.rjust(10)
print (new_my_str_space)
13.ljust()
返回一个原字符串右对齐的并用空格填充
new_my_str_space1 = my_str_space.ljust(100)
print (new_my_str_space1 )
print ( len ( new_my_str_sapce1 ) )
14.center()
new_my_str_space2 = my_str_space.center(50)
print ( new_my_str_space2 )
print ( len( new_my_str_sapce2 ) )
15.lstrip()
print ( new_my_str_space2 )#50
print ( len ( new_my_str_space2.lstrip()
print ( len ( new_str2 ))
print ( new_str2 )
16.rstrip()
清除字符串右边的空白字符
new_str3 = new_str2.rstrip( )
print ( len ( new_str3 ) ) #5
print ( new_str3 )
17.strip()
删除两端的空白字符
str1 = '\n\tdadadad\t'
print(len(new_my_str_space2))
new_str4 = new_my_str_space2.strip()
print(len(new_str4))
print(len(str1))
str2 = str1.strip()
print(len(str2))
18.rfind()
类似于 find()函数,不过是从右边开始查找.
index5 = my_str.rfind ( ' neuedu ' )
print ( index 5 )
19.rindex()
类似于 index(),不过是从右边开始.
index5 = mystr.rfind('neuedu')
print(index5)
20.partition ()
把mystr以str分割成三部分 str前、str、str后
print ( my_str )
t_mystr = my_str.partition( ' neuedu ')
print ( t_mystr ) # 元组
21.rpartition()
类似于 partition()函数,不过是从右边开始.
22.spitlines()
按照行分割,返回一个包含各行作为元素的列表
line = ' hello\nworld'
listline= line.splitlines ()
print ( list_line)
23.isalpha()
判断字符串是否都是字母
alpha = my_str.isalpha ( )
print ( alpha )
alpha2 = ' dddddddd '
alpha3 = alpha2.isalpha ( )
print ( alpha3 )
24.isdigit()
判断字符串是否都是数字
25.isalnum()
判断是否只有字母或数字
26.isspace()
如果 mystr 中只包含空格,则返回 True,否则返回 False.
27 join()
mystr 中每个元素后面插入str,构造出一个新的字符串
str4 = " "
list1 = [ ' my ' , ' name ' , ' is ' , ' songxioabao ' ]
my_name = str4.join ( list1 )
print ( my_name )
# _ / ,
my_name = "_".join ( list1 )
print ( my_name )
*常用的 find replace split join strip
价值一个亿的AI核心代码
while True:
print('AI说:'+input().strip('吗?')+'!')
while True:
print(input('').repalce('吗','').replace('?','!'))
列表 c数组很像 但是list可以存储不同类型的数据
name_list = ['鲁班','xiaoming',1024]
print(name_list)
print(type(name_list))
访问
print(name_list[0])
遍历
for
for name in name_list:
print(name)
while
i=0
while i < len(name_list):
print(name_list[i])
i += 1
列表的相关操作
1.添加
'''
str = input ( '请输入您要添加的内容 ’)
name_list.append(str)
print('添加后',name_list)
'''
list1 = []
for i in range (10):
list1.append(i)
print(list1)
insert
在指定位置index前插入 元素object
a = [0,1,2]
a.insert(1,10)
print(a)
extend
可以将另外一个集合逐一添加到列表中
a = [1,2]
b = [3,4]
a.append(b)
print(a)
a.extend(b)
2.修改
update
name_list[1] = '小明'
print(name_list)
3.查找
in/not in
find_name = '小明'
if find_name in name_list: #(not in)
print('小明在列表中')
else:
print('不在')
index count
a = ['a','b','c','a','b']
index1 = a.index('a',1,4) #左闭右开
print(index1)
counts = a.count('b')
print(counts)
4.删除
del
根据下标进行删除
del name_list[0]
print('删除后',name_list)
pop
删除最后一个元素
remove
根据元素的值进行删除
5.排序
--from modename import name1,name2
'''
from random import randint
num = randint(-10,10) #[-10,10]
print(num)
'''
num_list = []
for _ in range(10):
num_list.append(randnt(1,20)
print(num_list)
num_list.sort()
print('正序排序',num_list)
num_list.sort(reverse=True)
print('逆序排序',num_list)
new_list = sorted(num_list)
print(num_list)
print(new_list)
区别
1.sort()对原来的列进行修改排序 sorted(num_list)返回新的,原来的没有
2.sort()属于列表的成员方法,sorted()对所有可迭代对象进行操作
3.ls.sort(key reberse) sorted(ls)
字符串的常用操作
print(dir(' '))
print(dir( [ ] ))
列表的嵌套
--列表里面还有列表
school_name = [['qinghua','beida'],['nankai','tianda'],['dongqing','yanshang']]
print(school_name)
print(school_name[0][1])
print('++++++++++++++++++++++++')
print(school_name[0, 1])
列表推导式
--所谓的列表推导式,就是指的轻量级循环创建列表
#list1 = []
for _ in range(10):
list1.append('不给我鲁班我就送')
print(list1)
list2 = [i for i in range(2, 17, 2)]
print(list2)
list3 = ["不给我鲁班我就送" for _ in range(5)]
print(list3)
from random import randint
# 生成10个元素 ,范围在【-10 , 10】区间的列表
l = [randint(-10, 10) for _ in range(10)]
print(l)
# 选出大于等于0 的数据
res = []
for x in l:
if x >= 0:
res.append(x)
print('使用for循环筛选:',res)
# 循环的过程中使用if
res2 = [x for x in l if x >=0]
print("使用列表解析筛选",res2)
列表转化成字符串
my_list = ['Welcome','to','ML','World']
# my_list_to_str = str(my_list)
# print(my_list_to_str)
print(' '.join(my_list))
列表和字符串的 *
str1 = 'hehe'*3
print(str1)
list4 =['6',9,0, 3,14]*5
print(list4)
numbers = [i for i in range(11)]
print(numbers)
一个学校,有3个办公室,现在有8位老师等待工位的分配,
请编写程序,完成随机的分配
import string
from random import randint
# import random.randint as randint
# 定义3个办公室
offices = [[],[],[]]
# 定义8位老师
names = list(string.ascii_uppercase[:8])
# names = list(names)
print(names)
for name in names:
# 【0,2】 产生一个随机数
index = randint(0, 2)
offices[index].append(name)
print(offices)
i = 1
for tempNames in offices:
print('办公室{}的人数为{}'.format(i, len(tempNames)))
i += 1
print('成员为:')
for name in tempNames:
print('{}'.format(name),end='')
print('\n')
print('-'*30)
元组
a = ('ddd',111,0.88)
tuple
print(type(a))
序列: 列表/字符串/元组
访问
print(a[0])
修改 不能修改 包括不能删除
a[1] = 99.9
index count
a = ('a', 'b','c', 'b', 'a')
index1 = a.index('a')
print(index1)
c = a.count('b')
print(c)
******************************
单个元素的元组
b = (100,)*3
# 是不是
print(b)
print(type(b))
同时遍历两个列表
zip() 用于将可迭代对象作为参数,讲对象中的对应的与元素打包成
--一个元组,然后返回这些元组对象 节约内存
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7 ,8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
zipped1 =zip(a, c)
print(list(zipped1)) #长度不一致,与最短的对象相同
heros = ['后羿', '安琪拉']
skills = ['惩戒之箭','烤串']
for hero,skill in zip(heros, skills):
print(hero,'------>',skill)
字典
--key --> value
info = {'name': '刘强东', 'age': 45,
'id': 32432432432432432,'addr':'北京'}
访问
--根据 键进行访问
print(type(info))
print(info['name'])
# 访问不存在的就会报错
print(info['sex'])
--当我们不确定字典中是否存在某个key,而且还要获得其value,可以使用get
mail = info.get('mail', '122@jingdong.com')
age = info.get('age', 20)
print(mail)
print(age)
修改
info['name'] = '马云'
print(info)
####### 添加
info['sex'] = '男性'
print('添加后',info)
####### 删除操作
# del 根据key删除
del info['name']
print('删除后',info)
del info
print('删除后',info)
clear
info.clear()
print('after clear ',info)
常用操作
len
print(len(info)) # k-y 的个数
keys
keys = info.keys()
print(keys)
values
values = info.values()
print(values)
#(keys values)
items = info.items()
print(items)
for key, value in info.items():
print(key,'======>',value)
字典解析
# 创建一个班级的分数
from random import randint
grades = { 'Student{}'.format(i):randint(50, 100) for i in range(1,21)}
print(grades)
筛选出 高于90 分的人
print(len(d))
print(d)
集合解析
set1 = {randint(0, 20) for _ in range(20)}
print(set1)
找到能被3整除的
res = { x for x in set1 if x%3 ==0}
print(res)
函数定义
def 函数名(num):
pass
函数名(num)
def caculateNum(num):
"""
计算 1 ~ num 之间的累加和
:param num: 累加和的末尾
:return: 累加和
"""
res = 0
for i in range(1, num+1):
res += i
return res
res = caculateNum(100)
print(res)