一、list操作
1、概念:Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
列表中的数据项用逗号分隔,用方括号括起来。列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维。
2、示例1:
1)
stus='诸葛亮,刘备,关羽,张飞'
new_stus=['诸葛亮','刘备','张飞','曹操','孙权']
#列表、list、数组、array指的都是一样的
#下标、索引、角标、编号都是同一个意思
#根据编号去取值
print(new_stus[-1])
#最前面一个元素的下标是0,最后一个元素的下标是-1
2)
cities=[]
#增加
cities.append('北京')#在列表末尾增加一个元素
cities.insert(0,'上海')#不要写负数,在指定位置增加元素
cities.append('广州')
print(cities)
#删除
cities.pop(0)#删除指定位置的元素
cities.remove('北京')#删除指定的元素
cities.clear()#清空list
del cities[-1]#删除指定位置的元素
print(cities)
#修改
print (cities)
cities[3]='南京'#修改的时候如果指定的下标不存在,会报错
print(cities)
#IndexError: list assignment index out of range,没有的下标是不能修改的
#查询
print(cities[0])#指定位置的
print(cities.index('广州'))#获取指定元素的下标,如果找不到元素,会报错
print(cities.count('广州'))#查看元素在list里面出现了多少次
my_list = ['python','jmeter','charles','postman']
print(my_list.reverse())#只是把这个list反转一下,但是不会返回内容
print(my_list)
3)排序
nums=[213,3,54,5423,7567567,3453,6,4,657]
nums=['f','a','u','d']
nums.sort()#升序排序,字符串、字母都可以排序
nums.sort(reverse=True)#降序排序
print(nums)
4)复制
cities2=['深圳','厦门','成都']
print(cities2*3)#复制几次
5)多维数组
#二维数组
#一层层去取
words=['view','code',]
print(words[-1][-1])
names=[['小黑',['小绿',138]],'小红',['小紫',['小白']]]
print(names[-1][-1][0])
print(names[0][-1][-1])
3、示例2:
#校验输入的用户名是否合法:
#输入账号 #input
#如果账号存在,提示已被注册,如果不存在的,允许注册 al_users[]
#不能为空 #strip()
#用户名长度为6-12之间 len() 就是字符个数
#最对输入3次 #用循环
all_users=['诸葛亮','刘备','张飞','曹操','孙权']
for i in range(3)
username=input('请输入账号:').strip()
if len(username)>5 and len(username)<13:
#先判断用户名长度,可以避免向数据库查询,占用性能
if all_users.count(username)>0:#count() 方法用于统计某个元素在列表中出现的次数。
print('这个名字已被注册')
else:
print('用户名长度不合法')
二、元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
示例:
#元组也是一个list,他和list的区别是,元组里面元素无法修改
t=(1,2,3,4,5,6,7)
print(type(t))
#试试 循环切片下标取值修改值
print (t[:1])
for i in t:
print(i)
#如果元组里面只有一个元素的话,那么必须在这个元素后面加一个逗号
words=(1,)
words2=('abc',)
print(type(words))
print(type(words2))
print(t.index(2))#找到元素的下标
print(t.count(2))#找到元素的个数
三、list循环
for...in循环,依次把list或tuple中的每个元素迭代出来,for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。
示例:
lists=['是否达到','水电费水电费是','发生的发生的','建行卡和监控',[1,2,3,4]]
words='marry,lily,joker'
for name in lists: #name只是一个变量名
for name in words: # name只是一个变量名
print(name)
for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素,python的语法
for i in range(4): #其他语言,java实现方式
print(lists[i])
for name in lists: # name只是一个变量名
if type(name)==list:#判断一个变量的类型,列表中的列表
for i in name:
print(i)
print(name)
四、切片
切片是list取值的一种方式,切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。
示例1:
nums=['诸葛亮','刘备','关羽','张飞']
print(nums[1:3])#顾头不顾尾,不包含最后那个下标
print(nums[1:])#如果从某个小标开始取,取到末尾结束,后面那个下标可以不写
print(nums[0:2])# 相当于print(nums[:2}),如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写
print(nums[:])#取list中所有的
for i in range(3): #range也是顾头不顾尾
print(i)
示例2:
lis=list(range(1,21))
print(lis)
print(lis[::-2])#最后一个2叫做步长,隔两个取一个值
若果步长是负数,从右往左取值
如果步长是正数的话,从左往右边开始取值
lis.reverse()#改变了原来list的值,字符串倒转(reverse)
new_list=list[::-1] #产生了新的一个list,不会改变原来list的值
print(new_list)
示例3:
#切片操作同样适用于字符串
info='你好,今天天气很好'
# 0 1 2 3 4 5 6 7 8
#下标是不会变的
print(info[2::-1])
五、字典操作
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
特点:1、取数据方便 2、速度快,
示例1:查询
infos={
'name':'张流量','sex':'男','addr':'火星','age':180
}
print(infos.get('name'))
print(infos['sex'])#如果key不存在会报错
print(infos.get('phone'))#如果取不到这个key值,就是None
print(infos.get('phone',110))#如果取不到这个key值,默认就是110
示例2:增加
infos['phone']=13590258888#增加一个key
infos.setdefault('小金库','2000万')
infos.setdefault('name','2000万')#如果key存在的话,不会修改可以原来的值
infos['name']='鹏妹妹'#如果key存在的话,会修改原来可以对应的value
print(infos)
字段是无序的
示例3:修改
infos['name']='鹏妹妹'
示例4:删除
infos.pop('name')#指定key来删除
infos.popitem()#随机删除一个key
del infos['phone']#指定key来删除
infos.clear()#清空字典
print(infos)
示例5:字典嵌套字典查询
1 people = { 2 '田雨':{ 3 'age':18, 4 'money':200000, 5 'clothes':'100套', 6 'hzp':'n多', 7 'shoes':['nike','addis','lv','chanle'] 8 }, 9 '张流量':{ 10 '金库':'2000w', 11 'house':['三环一套','4环2套'], 12 'cars': { 13 'japan':['普拉多','兰德酷路泽'], 14 'usa':['林肯','凯迪拉克','福特'], 15 'china':['五菱宏光','qq','红旗'] 16 } 17 } 18 } 19 print(people['张流量']['cars']['china'][1]) 20 print(people['张流量']['cars']['usa'][:]) 21 people['田雨']['money']=people['田雨']['money']+200 22 print(people) 23 people['田雨']['shoes'].append('匡威') 24 print(people) 25 people['张流量']['cars']['usa'].append('牧马人') 26 print(people) 27 直接循环一个字典的话,那么循环的是字典的key 28 for p in people: 29 print(p) 30 for k,v in people.items():#循环的时候,同时取key和value 31 print(k,'===>',v)
六、字符串常用方法
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
#字符串是不能修改的
a=' 字 符 串 nn ' #n为换行符
c=a.strip()#默认去掉字符串两边的空格和换行符
c=a.lstrip()#默认去掉字符串左边的空格和换行符
c=a.rstrip()#默认去掉字符串右边的空格和换行符
print('c...',c)
print('a...',a)
words='today is a wonderfulday'
print(words.strip('day'))#如果strip方法指定一个值的话,那么会去掉这个值
print(words.count('a'))#统计字符串出现的次数
#print(words.index('z'))#找下标,如果元素找不到的话,会报错
print(words.find('z'))#找下标,如果元素找不到的话,返回-1
print(words.replace('day','DAY'))#替换字符串
print(words.isdigit())#判断字符串是否是纯数字
print(words.startswith('http'))#判断是否以某个字符串开头
words.endswith('.jpg')#判断是否以某个字符串结尾
print(words.upper())#变成大写
print(words.lower())#变成小写
username='abcdef12345@#$'
print(username.isalpha())#判断字符串是否全为字母
print(username.isalnum())#判断是否包含字母和数字,它是主要有字母或者有数字就返回true
- 还没有人评论,欢迎说说您的想法!