python 字符串、list、元组、字典常用方法


一、字符串常用方法

#字符串常用方法 a = ' 字符串 \n\n\n\n\n'#\n换行符 #c = a.strip()#默认去掉字符串两边的空格和换行符 c = a.lstrip()#默认去掉字符串左边的空格和换行符 #c = a.rstrip()#默认去掉字符串右边的空格 print('c...',c) print('a...',a) words = 'today is a wonderfulday' print(words.strip('today'))#如果strip方法指定一个值的话,那么会去掉这两个值 print(words.count('a'))#统计字符串出现的次数 print(words.index('is'))#找下标 print(words.index('z'))#找下标如果元素不找不到的话,会报错 print(words.find('z'))#找下标,如果元素找不到的话,返回-1 print(words.replace('day','DAY'))#字符串替换 print(words.isdigit())#判断字符串是否为纯数字
print(words.islower())#判断字符串是否为小写字母
print(words.isupper())#判断字符串是否为大写字母
print(words.startswith(
'http'))#判断是否以某个字符串开头 print(words.endswith('.jpg'))#判断是否以某个字符串结尾 print(words.upper())#将字符串变成大写 print(words.lower())#将字符串变成小写 username = 'abcdeff45%&' print(username.isalpha())#判断字符串是否全为字母 print(username.isalnum())#字符串中只要包含符号就返回False,其他值返回True

字符串比较重要的两个方法
name_list = names.split(',')#根据逗号进行分割字符串,读取文件时要取文件某一行中的某一个值时这个方法特别好用
','.join('abc')#连接字符串

二、list循环

lists = ['huahua','caocao','niaoniao','shushu',[8,6,3,1]] words = 'marry,lily,jack' age = 18#该种类型不可循环 #for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素
for name in words:#lists里面有多少元素就循环多少次
    name +='100'#name表示lists里面的每一个元素
    print(name) for name in lists: if type(name)==list:#判断元素类型
        for i in name: print(i) print(name)

list练习
stus=[ ['小明','未交'], ['小白','已交'], ['小紫','已交'], ['小红','未交'], ['小绿','未交'], ['小黄','未交'], ['小黑','已交'] ] #统计所有已交作业的同学和未交作业的同学
pass_list = []#存所有已交作业的同学
fail_list = []#存所有未交作业的同学
for stu in stus: status = stus[1]#存是否交作业的状态
    name = stus[0]#存学生姓名
    if status == '未交': fail_list.append(name) else: pass_list.append(name) print('未交作业的同学是%s,总共有%s个人'%(fail_list,len(fail_list))) print('已交作业的同学是%s,总共有%s个人'%(pass_list,len(pass_list)))
 
 
#校验用户名是否合法 #输入账号 #input #如果账号存在的话,提示已经被注册,如果不存在,就让他注册;all_users #不能为空 #strip() #用户名长度6-12之间 #len #最多输入三次 #循环
all_users = ['张三三','lilylily','王五五'] for i in range(3): username = input('请输入账号:').strip() if len(username)>5 and len(username)<13: if all_users.count(username) > 0: print('已经被注册啦,换个名字吧!') else: print('名字不错,赶紧注册吧') break
    else: print('用户名长度不合法!长度在6-12之间') else: print('失败次数过多')

三、元组

#元组也是一个list,他和list的区别是元组的元素无法修改
tuple1 = (2,3,4,5,6,4,7) print(type(tuple1)) print(tuple1[:7]) print(tuple1[:5:-1]) for i in range(6): print(tuple1[i]) for i in tuple1: print(i) lists = (#不能修改
    '192.168.1.108', 'root', '123456', '3306', 'hehe' ) word = (1) word1 = ('abcd') print(type(word))#int型
print(type(word1))#str型
 word2 = (1,) word3 = ('abcd',) print(type(word2))#int型
print(type(word3))#str型

四、字典常用方法

#字典是key-value的形式 #string list dict #1、取数据方便 #2、速度快
names = ['张san','物无数','王五','chenkai','lily'] age = [18,34,23,23,45] sex = ['','','','',''] infos = {'name':'张san','sex':'','addr':'地球','age':18} #1、查询
print(infos.get('name')) print(infos.get('score'))#key不存在返回None
print(infos.get('score',56))#如果取不到这个key的话,默认是56
print(infos['sex']) #print(infos['score'])#如果key不存在会报错

#2、增加
infos['phone'] = 15245125623#增加一个key
infos.setdefault('婚否','已婚')#key不存在两种方法无区别
infos.setdefault('name','张玲玲')#如果key存在的话,无法修改key的值
infos['name'] = '王珊珊'#如果key存在的话会修改原来key的值
print(infos)#字典是无序的

#3、删除 # infos.pop('name')#指定key来删除 # infos.popitem()#随机删除一个key # del infos['phone']#指定key来删除 # infos.clear()#清空字典 # print(infos)
#方法
print(infos.values())#获取到字典所有的value
print(infos.keys())#获取到字典所有的key
print(infos.items())#获取到字典所有的key-value

#用in来判断值在不在字典中,判断的key是否在字典中,不判断value

#字典查询、增加举例 people = { '张三':{ 'age':19, 'money':20000, 'clothes':'100套', 'hzp':'n多', 'shoes':['nike','addis'] }, '王五':{ 'jinku':'2000w', 'house':['三环一套','四环二套'], 'cars':{ 'japan':['普拉多','奔驰'], 'usa':['林肯','福特'], 'china':['qq','红旗','武林'] } } } print(people['张三']['money'])#取到张三的money
print(people['王五']['cars']['usa'][0])#取到王五的林肯车

print(people['王五']['cars']['usa'])#取到王五的usa下所有的车
people['王五']['cars']['usa'].append('跑酷')#给王五的usa中增加车辆
print(people)
people['张三']['money'] += 200#张三的money增加200块
#直接循环一个字典的话,那么循环的是字典的key,字典是无序的
for p in people: print(p) for k,v in people.items():#循环的时候,同时取key和value
    print(k,'====>',v) print()
for k in people:#循环的时候,同时取key和value,此种方法比people.items()速度快
  print(k,people[k])

字典练习
users = { 'zhanglili':'123456', 'wangwuw':'534545', } #所有的账号和密码 #username #pwd #cpwd #print('zhanglili' in users)#not in 字典里面用in来判断的话,只是判断key是否存在
for i in range(3): username = input('账号:').strip() passwd = input('密码:').strip() cppasswd = input('密码确定:').strip() if username == '' or passwd =='' or cppasswd == '': print('账号/密码不能为空') elif username in users: print('用户名已被注册!') elif passwd != cppasswd: print('两次输入的密码不一致') else: print('恭喜,注册成功!') users[username] = passwd break
else: print('错误次数过多!')
 
 

 

 

五、常见数据类型(布尔、列表(增、删、改、查、list切片))

#一、布尔值
a = True#T要大写,小写时表示普通的字符串
b = False#F要大写,小写时表示普通的字符串
if a>b: print('hello') #二、列表
stu = 'zhangsan,wangwu,陈凯,lily,wangwu' new_stus = ['zhangli','zhangsan','wangwu','lisi','lily','cengcen'] #编号从0开始 #列表、list、数组、array都是列表
print(new_stus[3]) #3是下标、索引、角标、编号(4种叫法)
print(new_stus[-1])#如果最前面一个元素的下标是0,最后一个元素的下标是-1

#1、增加元素
cities = [] cities.append('上海')#append()在列表末尾增加一个元素
print(cities) cities.insert(0,'西安')#insert()在指定的位置增加元素,添加时下标不要写负数
print(cities) cities.append('北京') print(cities) #2、删除元素
cities.pop(0)#删除指定位置的元素
print(cities) cities.remove(1)#报错
cities.remove('北京')#删除指定的元素
print(cities) cities.clear()#清空list元素
print(cities) del cities[2]#删除指定位置的元素

#3、修改(只能修改已有的下标值,指定的下标值不存在会报错)
print(cities) cities[1] = '湖南'
print(cities) #4、查询
print(cities[0])#指定位置的 #print(cities.index('云南'))#获取元素的下标,如果找不到那个元素的话会报错
print(cities.count('西安'))#查看元素在list里出现过多少次
print(cities.reverse())#把list反转,结果为None,无任何返回值
print(cities) #5、排序(字符串和字母都可以进行排序)
nums = [4,6,3,5,3,57,8,3,45,0,7] nums.sort()#升序排序
print(nums) nums.sort(reverse=True)#降序排序
print(nums) #合并和重复
cities2 = ['深圳','厦门','广东','澳门'] print(cities+cities2)#合并list
print(cities*3)#将list重复3遍

#6、len()
all_users = ['zhangsan','lily','lisi'] print(len(all_users)) #7、多维数组
words = ['views','code','tools',['zhangss','wangwu']]#二维数组


#8、切片是list取值的一种方式
nums= ['zhangsan','wangwu','lisi','lily','cengcen'] print(nums[1:3])#切片顾头不顾尾
print(nums[1:4]) print(nums[1:])#从某个小标开始取,取到末尾结束时下标可以省略不写
print(nums[:6])#从头开始取,取到后面某一个小标结束,那么开头的下标可以不写
print(nums[:])#取所有的值
 list1 = list(range(1,21)) print(list1) print(list1[:10:2])#2表示步长,隔两个取一个
print(list1[:10:3])#隔三个取一个
print(list1[0::2]) print(list1[0::-1])#从右往左开始取,下表为0开始往右
print(list1[::-1])#反转list1,如果步长是正数从左往右取,步长为负数从右到左取值 #产生一个新的list,不改变原来list的值 #list1.reverse()#改变原来list的值
print(list1) print(list1[::-2])#从右往左取

#切片操作同样适用于字符串
info = '你好,今天天气很好'
print(info[6:2:-1]) print(info[2:6:-1])#取值为空
print(info[::-1]) #下标是不会改变的
print(list1[:18:-1])#-1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取

#9、修改(可变变量里面的元素可以随便修改:如list,不可变变量里面的值不能修改:如string、元组)
name = '353454' name[2] = '5'#报错:TypeError: 'str' object does not support item assignment

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM