一、字典(dict)
在第一次的作业中用户名和密码分别存在一个 list,且用户名和密码需要一一对应,这种方式存储起来比较费劲,这时候可以用字典来装下用户的用户名和密码信息,这是字典最简单的应用:
accounts = { 'Lily':'123456', 'Lucy':'aaaaaa', 'Emily':'hahaha' }
里面的信息是 'key:value' 的形式,一个个的键值对之间用 ',' 分割,这种方式取值也方便,还可以用来存取一个班的学生信息,即字典的嵌套。存储的信息一目了然,方便读取,不过在写的时候要注意格式。
stus = { 'a':{ 'phone':'13511111111', 'qq':'123456', 'addr':'new york' }, 'b':{ 'phone':'15677777777', 'qq':'00000000', 'addr':'los angelas' } }
上面这个字典,取到 qq = 123456 的方式是: stus['a']['qq']
另外,字典是无序的,打印字典时看输出可以看出来这一点。
下面总结下字典的一些方法:
增:
accounts['april'] = 'abc123' #key存在时改变原有值 accounts.setdefault('Lily','111111') #key 存在时不改变原有值
删:
accounts.pop('Lily') del accounts['Lily']
改:
直接通过 key 查找的方式,拿到后重新赋值,相当于「增」的第一个方法
查:
accounts['abby'] #找不到 key 时报错,不推荐使用 accounts.get('abby') #找不到 key 时返回 None accounts.get('abby','abbie') #找不到 ‘abby’ 这个 key 时,返回 ‘abbie’
字典的拼接:
accounts.update(stus) #把 stus 拼接在 accounts,并把结果更新在 accounts
循环:
有两种方式,一种是 k 的循环,一种是 k 和 v 的循环。如下:
1 #第一种 2 for a in accounts: 3 print(a) #取到的是 key 4 print(accounts[a]) #通过 key 取到 value 5 6 #第二种 7 for k,v in accounts.items(): #items() 方法用于取到字典的所有 key 和 value 8 print(k,v) #直接取到 key 和 value,但第一种性能更好,这种方式适合小批量数据
除此之外,列表、字符串都可以循环。
简单总结:第一次学字典的时候,很容易跟 list 搞混,然后忘的又很快。这次联系做的及时,暂时还记得住,没混。但在作业中遇到一个让我脑袋发懵的问题,就是实际中去定义嵌套字典,写着写着乱掉了,左一个字典右一个字典,这一个变量那一个变量,后来还是把我要定义的字典样式在本子上写下来猜得以解决。在这里先写一下,就当再练一回。
上图中两个字典,一个 users,一个 info,info 作为我输入的用户(key:username)的 value,所以要定义两个字典。然后 users 这个字典中,key 的变量名统一为 username,value 的变量名为 info{}。这样,就可以把另一个字典 info 当作 value 赋值给 username。
users = {} info = {} list = ['userA','pwdB'] username = list[0] users[username] = info #相当于给字典增加值 info['password'] = list[1] #给嵌套内的字典赋值
5.29更新:
考虑了一下,觉得字典套字典的方式实在太硬了…转念一想可以字典套 list,果断改了!不过字典套字典的处理也是学到了,万一以后用得着呢!
二、字符串方法
字符串的方法太多了…简单整理下备注他们是干嘛的,方便日后需要的时候自己看。需要注意的是,字符串的所有方法都不改变字符串原有的值,都会返回一个新的值,因为字符串无法修改。
去空格:
找某个字符的下标:
其他(包含了最后一个方法,字符串格式化,与上次介绍的不同之处在于,这里传的是自己给的值,不是变量的):
进一步,format 和 format_map:
字符串中的重要方法:
1. string 转 list
month = 'January,February,March,April,May' monthList = month.split(',') print(monthList) #结果为:monthList:[‘January’,'February','March','April','May']
2. list 也可以转为 string
monthList = [‘January’,'February','March','April','May'] month = ','.join(monthList) #凭记忆写竟然写成:month = monthList.join(',')
我之所以会写错,是因为没有了解清楚,join() 方法也是一个字符串方法,需要跟在某个字符串后面使用。list 转 string 的时候,就是把‘,’ 当作一个字符串,使用 join() 方法,用 ‘,’ 把后面传入 list 的元素隔开并拼接成一个 string。再说 split(),这个方法就是用传在 split() 的字符(串)去分割已知字符串,并把分割后的部分放在 list 中。
通过整理收获很大,以后应该不会乱用这俩方法了8。
三、元组
元组也是一个 list,但是跟 string 一样不能修改
定义方式: t = (1,2,3,4)
几个方法和属性:
适合存储一些日常用,但不可以随意更改的内容,比如数据库的登录信息等。
下一篇写文件操作。