python遍历元祖每个值_python基础二(list,tuple元祖、dic字典,字符串)

一、列表list

1、list定义

列表即数组 ,list或array.。列表中的每个元素都有自己的编号,从0开始,编号也可叫做下标,角标,索引。最后一个元素的下标也可用-1表示.:

list定义时,需要用中括号[]括起来元素,每个元素之间用逗号分隔开。示例:stus=[‘小白’,'小红,‘小明’,'小兰']  元素如果是字符串需要用引号括起来

2、list操作

增:

stus.append('北京') #在列表末尾增加一个元素

stus.insert(0,'上海') #在指定的位置增加元素

stus.extend(list1)#将list1合并到stus中

stus+list1 #合并list1和stus

删:

stus.pop(0) #删除指定位置的元素

stus.remove('北京') #删除指定的元素

del stus[2] #删除指定位置元素

stus.clear()#清空list

改:

stus[1]='深圳'#修改指定位置的元素,但是如果下标不存在,则会报错

查:

print(stus[1])#获取指定位置的元素,并打印出来

print(stus.index('北京'))#获取元素对应的下标,如果元素不存在,下标找不到,会报错

print()stus.count('深圳'))#获取元素在list中出现的次数

list反转:

my_list = ['python','jmeter','charles','postman']

my_list.reverse()#就是把这个list反转一下,并不会返回任何内容。如果你直接打印会发现,结果显示none : print(my_list.reverse())

print(my_list)#显示翻转后的list

list排序:

可对数值型元素排序也可对字符串型元素排序,默认按升序排序。如果加上参数reverse=True,则按照降序排序

list合并:

list的合并,只需要多个list用加号+链接即可

nums1 = [9,2,34,12,34,457,2342]

nums= ['b','f','e','z','g','h']print(nums1+nums2)#结果就是两个list合并后[9,2,34,12,34,457,2342,'b','f','e','z','g','h']

如果同一个list中的内容,复制合并,则直接用原来的list*n(n表示次数):

print(nums1*3),则输出:[9, 2, 34, 12, 34, 457, 2342, 9, 2, 34, 12, 34, 457, 2342, 9, 2, 34, 12, 34, 457, 2342],把原来的nums1重复3次后输出,

字符串也可以这样用:print('东方大厦'*3),输出:东方大厦东方大厦东方大厦

3、多维数组

多维数组就是数组中的元素仍是数组。维数根据数组嵌套层次计算:

stus=['aaaa','bbbb','cccc','dddd','eeee','ffff',['ggg','hhh'],'jjjjj']#这就是一个2维数组

stus=['aaaa','bbbb','cccc','dddd','eeee','ffff',['ggg','hhh',[2323,45455]],'jjjjj']#这就是一个3维数组,最外层是stus[],第二层是['ggg','hhh',[2323,45455]],第三层是[2323,45455]

多维数组的取值:根据下标逐层取:

比如上例要取最里层的45455,一层一层深入,首先45455在最内层[2323,45455]的1位置(或者-1位置),然后最内层在第二层['ggg','hhh',[2323,45455]]的2位置,第二层整体在最外层的6位置,所以最终结果为stus[6][2][1]或者stus[6][-1][-1],最后一个元素也可用-1取

4、循环遍历数组

一维数组:

forvarinwords:#var此时代表的就是words中的每个元素

print var

#第二种方法

for i in range(5) #i表示循环次数,从0开始,同时也充当words的下标

print(words[i])

多维数组

words=['1','sdf ','3232','ddsdff','fffdfdf',[1,2,4,'dsfsd']]

#如果想要遍历所有元素,包括内置的list[1,2,4,'dsfsd']的所有元素。则在遍历words的时候,可以做一下判断,当words的元素类型为list时,再次循环

for name inwords:

if type(name)==list: #判断一个变量的类型,是否是list

for i in name: #如果是list,继续遍历该变量

print(i)

print(name)

5、切片

# 切片是list取值的一种方式,可一次取出多个元素

nums=['12','34','sdf','fere','dsfds']print(nums[1:3]) #取出下标从1开始至2的元素,即:nums[1]nums[2],顾头不顾尾,nums[3]的取不到

print(nums[1:]) #取值从下标1开始,到结束。如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写

print(nums[:3]) #取值从下标1开始,到下标1.如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写

print(nums[:]) #取所有的

#如果想有规律的隔几个取一个,则可以加上步长

例:lis=[1,2,3,4,5,6,7,8,9] print(lis[::2]) #步长是2,结果是1,3,5,7,9

这里步长是正数,则按照从左往右依次取,如果步长为负数,则需要从右往左取值:

print(lis[::-1]) #步长是负数,反向取,结果是9,8,7,6,5,4,3,2,1

这个反转取值,是会产生一个新的list,在原来list的基础上反向,并不会改变原来list的顺序,此时如果你继续输出print(lis),会发现,并没有任何变化

但是如果用reverse函数,那就回改变原有list的值:

lis.reverse()print(lis)#此时,lis输出顺序就是反向的

切片同样适用于字符串:

s='abcdefg'

print(s[:3]) #输出abc,下标从开始到2,顾头不顾尾,所以下标3取不到

6、元组

元祖也是一种list,但他和list的区别在于,元祖里面的元祖不可修改。元组定义的格式是用一个小括号括起来所有的元素,元素中间用逗号分隔,需要注意的是,如果元祖中只有1个元素,则需要在最后加一个逗号

例:yuanzu=(1,2,3,4,5,'wewew')

yuanzu=(1,)#只有一个元素,要加上逗号

相关操作和list一样:

print(yuanzu.index('wewew')) #找到元素的下标

print(yuanzu.count('wewew')) #找到元素的个数

元祖只有index和count方法,元祖的元素不可变更,修改增加都不行:

如果yuanzu[3]=43,会提示错误 TypeError: 'tuple' object does not support item assignmen

7、字典

字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,为key-value格式,取数据非常方便,而且速度很快。

字典的定义用大括号{}将元素括起来,里面是一对一的键值对key-value.,key和value之间用冒号分隔

例:infos = {'name':'小红','sex':'女','addr':'北京','age':15} #name,sex,addr,age是key, 小红,女,北京,15是对应的value

1、字典操作:

增加

#增

infos['phone']=13611087045 #通过指定key来增加,但是如果key原本就存在,就会修改原来key值.如果key不存在,会新增一对key-value注意:对于嵌套字典,这种方式新增key-value时,外层的key必须存在,否则会出错

infos.setdefault('phone','13611087045')#但是如果用setdefault方法,key值原本就存在的话,是不会改变原来的值

infos.setdefault('name','使劲地激发')#不会改变原来的值,print(infos['name'])的结果还是小红infos['name']='熊阿兰' #会改变原来的值,print(infos['name'])#输出结果就是熊阿兰

infos.update(set1)# 将set1字典的元素,加入到infos字典中,如果key有重复的,则覆盖

改:

修改的话,就直接调用key修改即可:infos['name']='熊阿兰'

删:

infos.pop('name') #指定key来删除

infos.popitem() #随机删除一个key

del infos['phone'] #指定key来删除

infos.clear() #清空字典

查:

print(infos.get('phone'))#取不到这个key的话,就是None

print(infos.get('phone',110))#如果取不到这个key的话,默认就是110

print(infos['phone'])#如果key不存在会报错,所以一般不用这个print(infos.values())#获取到字典所有的value

print(infos.keys()) #获取到字典所有的key

print(infos.items()) # 获取字典所有的k-v

#如果字典多层嵌套,想要取字典中某个value时,方法同list,一层一层深入取值

people = {

'小红':{

'age':18,

'class':'二年一班'

'shoes':['nike','addis','lv','chanle']

}}

要想取到lv,则 people['小红']['shoes'][2]1、先people['小红']取到key 小红对应的value:

{

'age':18,

'class':'二年一班'

'shoes':['nike','addis','lv','chanle']

}2、 然后再用[shoes]取到key shoes对应的values:['nike','addis','lv','chanle']

3、然后这是一个数组,所以用索引[2]取到对应的lv,综上people['小红']['shoes'][2]

循环字典:

#直接循环一个字典的话,那么循环的是字典的key

for p in infos:

print(p)#书出来是people中的所有key

for k,v in infos.items(): #循环的时候,同时取key和value

print(k,'======》',v)

8、常用的字符串方法

如下,需要用时,直接参考使用

a='字 符 串 \n\n\n\n\n'c= a.strip() #默认去掉字符串两边的空格和换行符

c= a.lstrip() #默认去掉字符串左边的空格和换行符

c = a.rstrip() #默认去掉字符串右边的空格

print('c...',c)print('a...',a)

words= 'http://www.nnzHp.cn'

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')) #判断是否以某个字符串开头

print(words.endswith('.jpg')) #判断是否以某个字符串结尾

print(words.upper()) #变成大写的

print(words.lower()) #变成小写的

username= 'abcdefADS12345@#¥'

print(username.isalpha()) #判断字符串是否全为字母和汉字

print(username.isalnum()) #判断是否包含汉字,字母和数字,它是只要有没有特殊符号就返回true

print(a.islower()) #是否全都是x小写字母

print(a.isupper()) #是否全都是大写字母

join方法:用特定的字符,将可循环的数据类型链接起来,比如list,字符串等,

如下两个例子

split(‘,’):根据某个字符串,分割字符串,什么也不传的话,是以空格分割的。最终返回一个list

字符串格式化:format

字符串格式化有两种方式,第一种就是前面写的%s %d占位符方式:

importdatetime

name='zhangyoa'date=datetime.date.today()print('%s你好,欢迎你登陆,今天的日期是%s'%(name,date))

这种方式要求前面的占位符跟后面跟着的变量要一一对应,如果碰到变量比较多的情况,就比较麻烦,要对准哪个对应哪个。

第二种方式就是用字符串的format函数

str.center()方法:让字符串居中显示,可以规定总长度,长度不够,用字符代替

'str' .zfill(n)方法:将用0将字符串str补充至长度为n,

print('1'.zfill(4))#输出结果就是0001

9、string模块的常用方法

使用string模块的方法之前,先要导入该模块,import string

importstring

string.ascii_letters#所有的大小写字母

string.ascii_lowercase#所有的小写字母

string.ascii_uppercase#所有的大写字母

string.punctuation#所有的符号

string.digits#所有的数字

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值