最近继续学习了python的一些数据类型的基础知识,话很少说,进入正题:python
list:列表,又名数组,是python中经常使用的数据类型之一,它能够做为一个方括号内的逗号分隔值出现,而且不限制数据类型,只要以逗号分隔开就好数组
如:app
上述代码方括号内称为元素,每个元素对应一个下标,下标又称为:索引,指针,值得注意的是他是从左至右是从0开始计数的,从右向左是从-1开始计数的学习
下面介绍对列表基本的操做,增,删,改,查操做;spa
增:增长列表的元素,能够用方法.append,.insert,他俩的区别就是append默认添加至列表的尾部,insert能够指定添加位置,list里的元素能够重复添加,不会去重;3d
删:删除列表元素,方式有三种:.pop,.remove,del关键字等,remove括号里要紧跟元素,pop,del需通过下标定义元素进行删除指针
改:即对列表里的元素进行更改操做,用下标定位到元素,进行新的赋值便可对象
stuname[0]='zhangxilu'
查:以下,定义一个新的列表,咱们能够对列表进行元素出现次数的计数,打印元素的下标,对元素进行反转,对列表进行排序(注意,排序只能针对number类型有效,其余会报错!!!)blog
对两列表进行合并等操做;排序
下面介绍关于列表的切片操做,即对列表元素进行花式取值操做;注意:切片时,都是用下标对元素进行定位;
l=list(range(1,101))#生成1--100的数字列表
print(l[2:8])#这里的数字指元素的下标,是指从第三个元素取值,取至第9个元素,注意:因切片操做时不包含后面的值的,即顾头不顾尾,因此输出元素不包括9,输出列表为[3.4.5.6.7.8]
print(l[0:5])#从第一个元素取至第五个元素
print(l[:5])#当从头开始标开始取元素时(即从0下标开始取元素),0下标能够忽略不写,效果与上例相同
print(l[::2])#从头取到尾,表明全部元素,后面的2指步长,即隔两个元素取元素
下面介绍数组嵌套进行切片,以下包括1维数组,2维数组,多维数组
nums1=[1,2,3]
nums2=[1,2,3,[4,56]]
nums3=[1,2,3,4,5,["a","b","d","e",["一","二","三"]],["四","五"]]
定位多维数组的元素,就是层层剥离,找到目标元素便可,如,打印上述数组中的“三”元素
print(nums3[5][4][2])
或从左向右打印也能够,怎么方便怎么来,以下,输出的都是同一个元素
print(nums3[-2][-1][-1])
tuple:元组 能够理解为不可变的列表,由于他一旦被建立,其内容就不能改变了,不能进行增长和删除操做,用小括号()表示,对于他的操做只有简单的两种,.count,.index,
对他的元素出现次数计数,以及输出元素的下标,也可进行元组的扩充等操做
dictionary:字典字典是另外一种可变容器模型,且可存储任意类型对象,字典中的每一个键值对用冒号分隔,键值之间用逗号分隔,全部的键值对放在 { } 里如:
studens={"name":"zhangdalu",
"sex":"男",
"addr":"shenzhen",
"phone":"1222222"}
值得注意的是字典里的k--v是成对出现的,且key是不可变的,能够用数字,字符串,元组定义,且是惟一的,自带去重复性,value值能够不惟一,对应的咱们也能够对字典里的元素进行增删改查操做
增:
studens["age"]=18
print(studens)
结果以下:
删:方法有两种 .pop或用关键字del均可以删除
studens.pop("age")或del students("age")
print("删除后的",studens)
结果以下:
改:即给key值赋予新的值便可
studens["name"]="lulu"
print(studens)
查:方式有两种,以下
print(studens["age"])
print(studens.get("age"))
上述代码的区别是,第一种字典里没有该key时,会报错,程序会中断,第二种get方式,会返回默认值,没有默认值就返回“none”;
字典里面打印key,value,能够用以下方式:
print(studens.keys())
print(studens.values())
这里插一个有意思的方法,以下
print(studens.setdefault("hahah",values))
他和students.get很类似,不一样在于,当字典中不存在后续跟的keys时,会自行添加进去;值也能够自定义,没有值就返回“none”
当字典中存在后面跟的keys时,对应的values值不会赋予字典中
---------------------------分割线---------------------------
写了一个注册登陆程序,此次的不一样是,从文件中帐号密码,注册时与文件进行对比,看用户是否存在,难点在于把文件内的字符串转化为列表或字典,而后取到表明用户名的值,进行对比
下面介绍列表的方式,字典还在研究中;
f = open("username.txt","a+")#打开uaername文件,读取里面的值
f.seek(0)#指针从头开始
users = []#定义一个用户list
pwd = []#定义一个密码列表;注册接口能够暂不考虑
for line in f:#对文件里的行进行循环(默认一行一个用户一个密码,一行多个帐户密码的状况,还在研究)
username = line.split(",")[0]#每一行按照“,”进行分割分割为一个数组,取数组的第一个元素值(默认存的的是用户名)
users.append(username)#把取到得值放进新的列表users里
password = line.split(",")[1]#取第二个元素
pwd.append(password)#取到的元素放进pwd列表里
后面注册成功后须要把用户名写入文件中,以下:
f.write(username+',' + pwd+'\n')#把注册成功的用户名,密码写进文件里,以“,”分割,且自动换行
f.close()#关闭文件
后续会补充字典的方法,good night!!!
这会是字典的使用方法
# users = {}#定义一个字典# for line in f:# name = line.split(":")#把f文件按每一行按“:”分隔成一个数组,即name(默认一行一个帐户密码,多个还在研究当中)# users[name[0]] = name[1].strip()#取name数组的第一个元素为key,第2个元素为value,把value值赋予key便可# print(users)