一、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

 

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!