列表
- 列表的解析,从一个嵌套列表中按照需要的规则提取出一个新的列表
a = '''a,b,c,d
q,w,e,r
t,y,u,i
'''
b = a.split() #使用空格作为分隔符时,不要使用a.split('\n'),否则会出现末尾带空字符的情况
c = []
for i in b :
c.append(i.split(','))
col2 = [row[1] for row in c] #先以空格分割字符串成一个以行为单位的列表,再以,为分隔符分割成二维字符串,最后取出每行第二个字符
l = [1,2,3,4,5,6]
l[1:4] = [1,1,1]
print l #[1, 1, 1, 1, 5, 6]
l[1:4] = ['x',1.1,1]
print l #[1, 'x', 1.1, 1, 5, 6] 此过程被替换掉的不需要与替换掉的相同
列表的方法
- append 在最后增加:l.append("x")
- sort 排序:l.sort() # 根据首元素ASCII码排序
- extend 在列表后添加多个元素: l.extend([1,23,4,5])
- l.pop(1) 移除索引为1的值
- index 查询列表元素的索引 l.index('bob') > 0
- insert 在某个位置插入某个元素 L.insert(0,"tom") > L["tom",'bob']
- remove 删除值为X的元素,如果列表有多个值为X的元素,从小的索引一次删一个 L.remove("tom")
列表的其他操作
- del 删除一个元素或一个分片 del L[0] ; del L[1:]
- 另一种删除分片的方法:L[2:3] = []
字典
字典的常用操作
D = {} #空字典
D = {"spam":2,'eggs':3} #两项目字典
D = {"food":{'ham':1,'egg':2}} #嵌套字典
D = dict.fromkeys('a','b') #构造一个a为键,b为值的字典
D = dict.fromkeys(['a','b'],0) # {'a': 0, 'b': 0} 此种方式比较方便为键赋予初始值
a = [1,2,3,4]
b = [4,5,6,7]
D = dict(zip(a,b)) #如果a和b的长度不能对应,则以最短的为准对齐
D = dict(name='bob',age = 40) #直接构造字典{'name': 'bob', 'age': 40} 此种方式键必须为字符串
D['eggs'] ; D['food']['ham'] #以键为索引进行运算
'eggs' in D #成员存在测试
D.keys() #方法:键
D.values() #方法:值
D.items() #返回(键,值)的元组
D.copy() #D的副本
D.get(key,"default") #如果key无值取默认值
D.update(D2) #把D2合并到D里,会覆盖相同的值
D.pop(key) #删除
len(D) #D的长度(存储的元素数目)
D[key] =42 #新增;删除键
del D [key] #删除键
list(D.keys()) #D的key形成的列表
D1.keys() & D2.keys() #字典键的交集
D4 = {x: x*2 for x in range(10)} #使用表达式创建字典 {0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}
D5 = {x: x*2 for x in "SPAM"} # {'S': 'SS', 'P': 'PP', 'A': 'AA', 'M': 'MM'}
D6 = {x.lower(): x+"!" for x in "SPAM"} # {'s': 'S!', 'p': 'P!', 'a': 'A!', 'm': 'M!'}
D7 = {k:0 for k in ['a','b','c']}
字典的排序
- 字典不可以直接排序,但是可以通过键构成的列表进行排序从而实现顺序读取
D = {'a':1,'c':3,'b':2}
ks = list(D.keys())
ks.sort()
for k in ks:
print(k,D[k])