day3python

一、#list列表、数组(中括号)
stus = ['田1','田2','田3']
# 下标、索引、角标,即数据在list内的编号.计算机内角标是从0开始的
# stus=list() #空list
# stus=[] #空list
# 增加元素
# stus.append('tianlixin') #在list末尾增加一个元素
# stus.insert(0,'田0') #在指定位置增加元素,前面指定位置,后面写数据
# stus.insert(11,'田1') #如果指定的下标不存在,那么就在末尾增加

#改,直接找到指定下标即可修改
# stus[2]='田11'
# stus[-1]='田丽新' #下标-1代表最后一个元素,以此类推
 
#删
# stus.pop() #默认删除最后一个元素,可以传入指定的下标删除
# stus.remove('田222') #删除指定的元素,如果删除的元素不存,会报错
# del stus[-1] #删除指定元素
# stus.slear() #清空list

#查
# print(stus[3]) #查询list中对应下标的元素
# result=stus.count('田1') #查询某个元素在list中出现的次数,如果不存在,则返回0
# # print(result)
# index=stus.index('田1') #找出元素在list中的下标
# print('下标是',index) #如果list内有多个相同元素,查到的是元素第一次出现下标,如果查的元素不存在则报错
#stus.reverse() #反转,由最后面的数据,依次显示,例['田3', '田2', '田1']
# stus.sort() #排序,默认是升序
# stus.sort(reverse=True) #加上参数“reverse=True”是降序排
# nums = [1,2,3,4,55,6,7]
# nums.extend(stus) #把一个list里面的元素加入到另外一个list里
# print(nums)

二、布尔类型,只有true和false
#if stus.count('田1')>0  #判断“田1”是否在list内
# print(stus)
# if '田1' in stus: #in:判断在不在list内,如果只输入田,也会提示不存在;如果不在则为not in
# print('存在')
# else:
# print('不存在')
三、list循环
stus = ['田1','田2','田3','田丽新']
for s in stus: #for s in stus意思为在stus内循环取值
print('s的值是%s'%s)
#如果直接循环一个list,那么每次取list内的每一个元素

#另一种循环取列表内元素的方法
for i in range(len(stus)): #len(stus)计算列表内元素的长度,即元素的个数,即4;for i in range(4)则为i在0-4内循环
print(stus[i]) #i循环取值来当做列表的下标,循环取出列表内的元素,以此来取出list内的每一个元素

例:用xpinyin将列表内的元素都转为拼音
p = xpinyin.pinyin()
for s in stus:
stu_pinyin = p.get_pinyin(s,'') #取s的值转为拼音,''内表示用什么连接拼音
print(stu_pinyin)

#同时取到list内的下标和值,两种方法
for i in range(len(stus)): #同时取到下标和值;取list长度;i为取到的下标;再通过下标取到stus[i]stus内的元素
print("下标是%s,值时%s"%(i,stus[i]))

for index,stu in enumerate(stus,1):
print("%s ==> %s"%(index,stu))
#同时取到下标和值,也可以在后面指定值;定义两个变量,分别取下标和元素;如果enumerate(stus,1),stus后还跟数值,index就是从这个数值开始

四、多维数组
stu0 = [1,2,3,4,5,6,7,8] 一维数组
stu1 = [1,2,3,4,['a','b','c'],['哈','呵']] #二维数组,嵌套几层就是几维数组
stu2 = [1,2,3,4,['a','b','c',['哈','呵','哦']]] 三维数组
print(stu1[5][0]) #此时取到的就是‘哈’这个元素,多维数组就是要写多个下标来找到这个元素
stu2[4][3].insert(0,'hehehe') #在['哈','呵','哦']这个list第一位增加一个‘hehehe’
stu2[4][3][0]=['哈哈哈'] #将stu2内['哈','呵','哦']的‘哈’改为‘哈哈哈’
五、切片
#切片,list取值的一种方式,他指定范围取值,顾头不顾尾巴,
#只能取到3,print(stu0[2:3]) #取stus列表内下标2-3的数据,但是不包括3
# print(stu0[:3]) #如果前面没有写,则是从下标0开始取
# print(stu0[3:]) #如果后面没有写,则是从几开始取到最后面
# new_stu = stu[:] #复制一个新的list
#print(stu0[0:7:2]) #步长,从0开始取,2为跳过一个元素去取
#print(stu0[::-1]) #如果步长为负数,则从右往左取值

六、字符串
#字符串:下标切片,同样适用于字符串,但是字符串通过下标不能修改
name = '是什么不知道'
print(len(name)) #获取字符串的长度
print(name[2:]) #字符串也可以指定下标,取到指定的元素;结尾下标没有写则取到list末尾
for s in name: #循环字符串
print(s)

七、字典
stu_info = {"name":"田1","age":18,"addr":"三河"}
#stu_info = dict() #空的字典
# print(stu_info['name']) #取字典内的value
# print(stu_info.get('name3'))
#字典内的取值方法-查询
# #stu_info['name']和stu_info.get('name3')两种取值方法,如果key不存在时,第一个会报错,第二个不会,会显示none
# print(stu_info.get('name3',500)) #如果取不到值,可以给一个默认的值,例如场景,用户不存在

#修改
stu_info['name']='田2'


#新增
stu_info['phone']='1102' #key存在则修改,不存在则新增
stu_info.setdefault('email','[email protected]') #setdefault如果key存在,则不会修改,key不存在则新增
#print(stu_info)

#删除
#print(stu_info)
#stu_info.pop('email')
#stu_info.clear() #清空字典
# stu_info.popitem() #随机删除一个元素,如果key不存在会报错
# del stu_info('email') #删除元素,如果指定的key不存在,则报错

#小知识
# d1={}
# d2={'a':'v'}
# d1.update(d2) #d2内的元素复制到d1内
# stu_info.keys() #获取字典所有key
# stu_info.values() #获取字典所有value

#print('name'in stu_info) #判断key是否存在,不用调用方法,更快
#print('name'in stu_info.key())

# for i in stu_info: #直接循环字典,每次取得都是字典的key
# print(i)
for i in stu_info:
print(i,stu_info[i]) #直接打印key和value
# for i in stu_info: #.get()方法取到key和value;循环字典,并取到字典内的key和value
# s="%s=>%s"%(i,stu_info.get(i))
# print(s)
for k,v in stu_info.items(): #。items方法取字典内的key和value
print("%s=>%s"%(k,v))

八、字典嵌套
# d = {
# '春波':{
# "car":['BMW','BENZ','audi','byd'],
# "house":["北京",'南京','上海'],
# "money":1000000,},
# '乔美玲':{
# "bag":['xx','lv',],
# "house":['三环','4环'],
# "hzp":['skii','ysl'],
# 'language':{
# '普通话':10,
# '东北话':20,
# '日语':0,
# '英语':4
# }
# }
# }
# #查询
# #print(d['春波']['car']) #d['春波']['car'] 找到春波下面的所有car
# #新增
# d['春波']['car'].append('现代') #因字典中car对应的value为list类型,所以新增的时候用append
# print(d)
# #删除
# d['春波']['house'].pop(-1) #pop删除只能用下标;删除春波上海的房子
# d['春波']['house'].remove('上海') #remove可以直接删除元素
# #修改
# d[春波][money]=d[春波][money]+50000 #春波的钱加上50000
# d[春波][money]+=50000 #和上面的功能一样,都是在原来数值的基础上加50000


#练习
d = {
'春波':{
"car":{'BMW':5,'BENZ':3,'audi':3,'byd':4},
"house":["北京",'南京','上海'],
"money":1000000,},
'乔美玲':{
"bag":['xx','lv',],
"house":['三环','4环'],
"hzp":['skii','ysl'],
'language':{
'普通话':10,
'东北话':20,
'日语':0,
'英语':4
}
}
}
#1、春波卖了一套上海的房子,卖了500w
# d['春波']['house'].pop('上海')
#2、算一下马春波有多少辆车
# car_num=d[春波][car].values()
# print(car_num)
# sum=0
# for i in car_num:
# sum=n+sum
# #或者另外一种方式
# print(sum(car_num)) #求list内元素的和

#3、春波买了一辆劳斯莱斯
# d['春波']['car'].setdefault('劳斯莱斯','1')
# print(d)
#4、乔美玲的东北话退步了, 从20级变成了10级
# d[乔美玲][language][东北话]=10
#5、乔美玲会哪些语言
# d[乔美玲][language].keys()

九、字符串常用方法
# s='abc'
# d='cda'
# s.strip() #默认去掉字符串两边的空格和换行符
# s.strip('.') #也可以去掉两边指定的字符,默认是去除空格
# s.rstrip() #去掉左边空格
# s.lstrip() #去掉右边空格
# s.count('.') #某个字符出现的次数
# # print(s.index('a')) #找某个字符串的下标,如果查找的字符串不存在会报错
# # print(s.find('a')) #找某个字符串的下标,如果查找的字符串不存在会返回-1
# s.replace('abc','ABC') #替换指定的字符串,如果后面再跟数字,说明替换几个,不写默认是全部替换
# s.upper() #把字符串内变成大写字母
# s.lower() #b把小写变成大写
# print(s.capitalize()) #首字母大写
# s.startswith('') #判断是否以某个字符串开头
# s.endswith('.jpg') #判断是否以某个字符串结尾
# s.isupper() #判断是否全大写字母
# s.islower() #判断是否全小写字母
# s.isdigit() #判断是否为纯数字
# s.center(50,'-') #字符串在指定长度的中间,后面为其他
# s.isspace() #有空格就返回true
# s.isalpha() #判断是不是为字母汉字,不能有数字和特殊字符
# s.isalnum() #判断字符串例没有特殊字符,没有就返回true
# s.isidentifier() #判断是不是一个合法的变量名
#
# s='insert into user VALUE ({username},{password},' \
# '{addr},{email},{phone}); '
# news=s.format(addr='beijing',phone=222,email='[email protected]',username='tian',password='088')
# print(news)
# #.format,也是字符串格式化,将值赋到大括号内的变量中,不限定顺序
#
# d = {'addr':'北京','username':'xiaohei','password':'12345','email':12,
# "phone":'sdfs'}
# s.format_map(d) #以字典的形式将值赋到s内
#
# #例:想让list内的数字都是两位
# l = [1,2,3,4,5,6,7,8,9,10,11]
# for i in l:
# res='0'+str(i) #str(i)将list内的数字转为字符串,再加上前面的0
# print(res)
# s.zfill(3) #.zfill为在数字上补0,写几位就表示数字是几位,对应的去补0
#
# s='user1,user2,user3,user4,user5,user6,user7'
# s.split(',') #以指定字符分隔字符串,返回一个list,如果什么都不写,默认按照空格来分隔字符串

cars=['BMW','ben-z','audi']
res='*'.join(cars) #以某个字符串把list里面的元素连接起来,成为一个字符串;如果直接str()方法则会把中括号也变成字符串的一部分
print('res是',res) #'bmw*ben-z*audi'
 
 



 



猜你喜欢

转载自www.cnblogs.com/hehetian/p/10012779.html