本文是Coursera上密歇根大学的Dr.Chuck开设的Python for everybody系列课程中Python Data Structure的个人笔记,记录备查阅
课程主页:https://www.coursera.org/learn/python-data
File
handle = open(filename,mode)
mode: 'r' read 'w' write
文件读入的时候有两种形式读入:
1.依次读入每一行(后面的\n一起读取),直接用handle = open(filename,mode)即可
2.将整个文件的内容读取成一长串的字符串,handle=open(filename,mode), inp= handle.read()
---------------------------------
List
两种不同的循环:
friends = ['Joseph','Glenn','Sally']
1.for friend in friends:
print friend
2.for i in range(len(friends)):
print friend[i]
List里面的内容是可以变化的,而string和tuple元组的是不能变的immutable
List里面的内容是有序的,dict里面的内容是无序的Hasgmap
----------------------------------
Dict
dict.get(key,defalutvalue) 取dict里面的key对应的value,如果没有这个key,那么就返回defaultvalue
dict.keys()
dict.values()
dict.items() -----> 出来的tuple
两个同步的循环变量(其实使用tuple实现的)
jjj = { 'chuck' : 1 , 'fred' : 42, 'jan': 100}
for aaa,bbb in jjj.items() :
print aaa, bbb
--------------------------------
Tuple
1.两个同步循环变量
tuple可以同时给两个变量赋值,左边的括号可以省略
(a,b)=(88,99) or a,b =(88,99)
又因为dict.items()出来的是由tuple组成的list
所以可以有两个同步的循环变量 for (a,b) in dict.items()://code here
2. key-sort
dict本身是无法进行排序的,单个tuple内部也无法进行比较,没有sort(),但是tuples之间可以通过比较运算符来进行排序
所以,本来不可排序的dict在转换以后可以通过这样的方式来进行排序。有两种方法:
tmplist = dict.items()
1.templist.sort() 在这种方式里面不能写成dict.items().sort()
2.sorted(templist) 在这种方式里面可以写sorted(dict.items())
3.value-sort
思路是将dict里面的tuple交换位置以后放到list里面,然后sort
c=dict()
temp=list()
for k,v in c.items():
temp.append((v,k))
temp.sort(reverser=True)
4.list comprehension 列表推导式
[expression for variable in list if condition]
所以上面的就可以写成sorted([(v,k) for k,v in c.items()])