字符操作
常用的find replace split join strip
- replace 替换字符
name='hello world haha'
new_name=name.replace('ha','Ha')
print(new_name)
new_name=name.replace('ha','Ha',1)
print(new_name)
price='¥599'
price=price.replace('¥',' ')
print(price)
- split()
- 以空格为分隔符分割name,如果maxsplit为指定值,则仅分割前指定值个
name='hello world ha ha'
name_list=name.split(" ")
print(name_list)
name_list1=name.split(" ",2)
print(name_list1)
- capitalize把字符串第一个字符大写
my_str='hello world neuedu and neueducpp'
my_str2=my_str.capitalize()
print(my_str2)
- title把每个单词首字母大写
my_str3=my_str.title()
print(my_str3)
- startwith检测字符串是否以str开头
- endwith检测字符串是否以str结尾
my_str4=my_str.startswith('hello')
print(my_str4)
my_str5=my_str.startswith('Hello')
print(my_str5)
my_str6=my_str.endswith('cpp')
print(my_str6)
- upper把字符串所有字母转换成大写
- lower把字符串所有字母转换成小写
my_str7=my_str.upper()
print(my_str7)
my_str8=my_str7.lower()
print(my_str8)
- rjust返回一个原字符串右对齐的并用空格填充width长度的字符串
- ljust返回一个原字符串左对齐的并用空格填充width长度的字符串
- center返回一个原字符串中间对齐的并用空格填充width长度的字符串
my_str_space='hello'
new_my_str_space=my_str_space.rjust(10)
print(new_my_str_space)
new_my_str_space=my_str_space.ljust(10)
print(new_my_str_space)
print(len(new_my_str_space))
new_my_str_space=my_str_space.center(50)
print(new_my_str_space)
- lstrip()清除字符串左边的空格
- rstrip()清除字符串右边的空格
- strip()清除字符串两边的空格
print(new_my_str_space)
new_my_str_space1=new_my_str_space.lstrip()
print(new_my_str_space1)
print(len(new_my_str_space1))
new_my_str_space2=new_my_str_space.rstrip()
print(new_my_str_space2)
print(len(new_my_str_space2))
new_my_str_space3=new_my_str_space.strip()
print(new_my_str_space3)
print(len(new_my_str_space3))
- partition把mystr三部分,str前,str ,str后
print(my_str)
t_mystr=my_str.partition('neuedu')
print(t_mystr)
rpartition 从右开始
- splitlines按照行分割,返回一个包含各行作为元素的列表
line='hello\nworld'
print(line)
list_line=line.splitlines()
print(list_line)
- isalpha判断字符串是否全部都是字母 True
alpha=my_str.isalpha()
print(alpha)
alpha2='ddddd'
alpha3=alpha2.isalpha()
print(alpha3)
isdigit判断字符串是否全是数字
isalnum判断是否只有字母或者数字
- join讲列表用字符串链接起来
str4=" "
list1=['my','name','is','songxiaobao']
my_name=str4.join(list1)
print(my_name)
my_name="_".join(list1)
print(my_name)
价值一个亿的AI核心代码
while True:
print('AI说:'+input().strip('吗?')+'!' )
列表
- C数组很像,但是list可以存储不同类型的数组
name_list=['鲁班','xiaoming',1024]
print(name_list)
print(type(name_list))
*访问
print(name_list[0])
- 遍历
for name in name_list:
print(name)
i=0
while i
列表的相关操作
- 1.添加操作
str=input('请输入你要添加的内容')
name_list.append(str)
print('添加后',name_list)
list1=[]
for i in range(10):
list1.append(i)
print(list1)
insert 在指定位置前插入元素object
a=[0,1,2]
a.insert(1,10)
print(a)
extend可以将另外一个集合主意添加到列表中
a=[1,2,3]
b=[3,4,5]
a.extend(b)
print(a)
- 2.修改操作 update
name_list=['鲁班','xiaoming',1024]
name_list[1]='小明'
print(name_list)
- 3.查找操作 in notin
find_name='小明'
if find_name in name_list:
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:删除最后一个元素
name_list.pop()
print(name_list)
remove:根据元素值进行删除
name_list.remove(1024)
print(name_list)
列表的排序
- from modename import name1,name2
from random import randint
num_list=[]
for _ in range(10):
num_list.append(randint(1,20))
print(num_list)
- 正序排序
num_list.sort()
print(num_list)
- 倒序排序
num_list.sort(reverse=True)
print(num_list)
- .sorted()
new_list=sorted(num_list)
print(num_list)
print(new_list)
.sort()对原来的列表修改排序 .sorted()返回新的列表,原来的没有改变
.sort()属于列表成员方法 .sorted()属于对所有可迭代对象进行操作
- 字符串的常用操作
print(dir(''))
print(dir([]))
列表的嵌套
列表里面还有列表
school_name=[['qinghua','beida'],['nankai','tianda'],['dongqin','yanda']]
print(school_name)
print(school_name[0][1])
列表推导式
所谓列表推导式,就是指轻量级循环创建列表
list2=[i for i in range(10) ]
print(list2)
list3=['不给亚索就送'for _ in range (5)]
print(list3)
生成10个元素,范围在-10-10之间的列表
from random import randint
l=[randint(-10,10) for _ in range(10)]
print(l)
#选出大于等于0的数据
res=[]
for x in l:
if x>=0:
res.append(x)
print(res,'使用for循环筛选')
#在循环过程中使用if
res2=[x for x in l if x>=0 ]
print(res2,'使用列表解析筛选')
列表转换成字符串
my_list=['Welcome','to','ML','World']
print(' '.join(my_list))
列表和字符串的*
str='hehe'*3
print(str)
list=['6',9,0,3.14]*5
print(list)
*筛选1-10中的偶数
number=[i for i in range(11)]
print(number)
res=[]
for x in number:
if x%2==0:
res.append(x)
print(res,'使用for循环筛选')
res2=[x for x in number if x%2==0 ]
print(res2,'使用列表解析筛选')
一个学校有三个办公室,现在有8个老师等待工位的分配,编写程序完成随机分配
import string
from random import randint
#定义3个办公室
offices=[[],[],[]]
#定义8个老师
names=list(string.ascii_uppercase[:8])
print(names)
for name in names:
#产生一个随机数
index=randint(0,2)
offices[index].append(name)
print(offices)
i=1
for tempNames in offices:
print('办公室{}的人数为{}'.format(i,len(tempNames)))
i+=1
for name in tempNames:
print('{}'.format(name),end=' ')
print('\n'+'-'*30)
元组
a=('ddd',111,0.88)
#tuple
print(type(a))
序列: 列表/字符串/元组
*访问
print(a[0])
index count
a=('a','b','c','b''a')
index1=a.index('a')
print(index1)
count1=a.count('b')
print(count1)
*修改 不能修改 不能删除
b=(100,)*3
print(b)
*同时遍历两个列表
zip用于将可迭代对象作为参数,将对象中的对应的元素打包成一个元组,
然后返回这些元组对象 节约内存
a=[1,2,3]
b=[4,5,6]
c=[7,8,9,10,11]
zipped=zip(a,b)
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':7777777,'addr':'北京'}
*访问 根据键进行访问
print(type(info))
print(info['name'])
#访问不存在的键会报错
#get 当我们不确定字典中是否存在某个key,而且还要获得其value,可以使用get
mail=info.get('mail','[email protected]')
print(mail)
age=info.get('age',20)
print(age)
*修改
info['name']='马云'
print(info)
*添加
info['sex']='男'
print(info)
*删除 del 根据key删除
del info['name']
print(info)
#clear
info.clear()
print('chear后',info)
*常用操作
print(len(info)) #key的个数
keys=info.keys() #所有的key
print(keys)
values=info.values() #所有的value
print(values)
items=info.items() #所有的key和value,组成元组
print(items)
*遍历字典
for key,value in info.items():
print(key,'---->',value)
集合
*无序,元素唯一,一般用于元组或者列表元素去重
#定义一个集合
set1={1,2,5,4}
print(type(set))
*添加 add
set1.add(8)
print(set1)
*删除
#remove不存在会报错
set1.remove(1)
print(set1)
#pop 随机删除集合中的元素
set1.pop()
print(set1)
#.discard 如果存在就直接删除,不存在就不做任何操作
set1.discard(5)
print(set1)
字典解析
*创建一个班级的分数
from random import randint
grades={'student{}'.format(i):randint(50,100) for i in range(1,20)}
print(grades)
*筛选出高于90分的人
d={k:v for k,v in grades.items() if v>=90}
print(d)
*集合解析
from random import randint
set1={randint(0,20) for _ in range(20)}
print(set1)
res={ x for x in set1 if x%3==0}
print(res)
def 函数名(num):
psss
def caculateNumber(num):
"""
计算1到num的累加和
:param num:累加和的末尾
:return: 累加和
"""
res=0
for i in range(1,num+1):
res+=i
return res
psss
print(caculateNumber(100))