1.count返回值的次数 list=[2,2,2,3,3,3,3,4,4,4] a={} for i in list: if list.count(i)>1: a[i]=list.count(i) print(a) 将具体的某个数的在列表中的次数返回 list=[2,2,2,3,3,3,3,4,4,4] print(list) print(list.count(2)) 2.set 将list中不重复的所有值遍历出来 list=[2,2,2,3,3,3,3,4,4,4] print(list) print(list.count(2)) print(set(list)) blist=set(list) print(blist) print(type(blist)) for i in blist: print(i) 3.修改list某项值 list=[2,2,2,3,3,3,3,4,4,4] alist.index(2) alist[3]='zxiba' print(alist) 4.位置0添加一个主席字符串 a=['maozd','dengxp'] a[0]+='主席' print(a) 结果: 在位置0添加并成3显示出来 a=['maozd 主席','dengxp'] a[0]*=3 print(a) 结果: ['maozd 主席 maozd 主席 maozd 主席','dengxp'] 5.排序类型 sort排序类型(默认正序) (1)从小到大: list=[1,2,3,8,9,6,7,5,4] list.sort() print(list) 结果: [1, 2, 3, 4, 5, 6, 7, 8, 9] (2)从大到小: list=[1,2,3,8,9,6,7,5,4] list.sort(reverse=True) print(list) 结果: [9, 8, 7, 6, 5, 4, 3, 2, 1] (3)字母排序,会按照顺序进行排序 numlist=list('bcjdiejk') numlist.sort() print(numlist) 第五章 元组和字典 1.字符串 列表并不是唯一标识序列值的数据类型,字符串和列表实际上很相似,只要你认为字符串是个danger文本字符列表,所有对于列表的操作对字符串均有效。 for i in 'axiba': print(i) a='axiba' a[:3] 2.元组 tuple() 元组是只读的,不能增删改查 元组和列表的区别: list-- spam=list('axiba') print(spam) print(type(spam)) tuple--- spam=tuple('axiba') print(spam) print(type(spam)) 区别: spam=('axiba') 'str' 类型 spam1=('axiba',) 'tuple' 类型 3.函数的传递引用 例子: def xblist(liname): liname.append('hello') spam=list('axiba') print(spam) xblist(spam) print(spam) 结果: ['a', 'x', 'i', 'b', 'a'] ['a', 'x', 'i', 'b', 'a', 'hello'] 3.字典列表和赋值的区别: 字典和列表在复制的是都是一张相同纸上的东西,所以只有修改一个,另一个也会变, alist=[1,2,3,4,5,6,7] print(alist) blist=alist print(blist) alist[1]='##' print(alist) print(blist) 赋值的话是独立的箱子,虽然等于了,但是a箱子的修改是独立操作的,所以b箱子是不会改变的。 a=100 b=a print(a) print(b) a+=100 print(a) print(b) 结果: 100 100 200 100 4.copy模块(函数) 分类: copy()函数 可以赋值列表及字典这种可变类型值 deepcopy()函数 可以复制列表中包含的列表 例:(copy) import copy spam=list('abcde') spam1=copy.copy(spam) spam[1]='##' print(spam) print(spam1) import copy spam=list('axiba') spam1=copy.copy(spam) print(spam) print(spam1) print('-----修该之前------') spam[0]='++' print(spam) print(spam1) 结论: 就是copy和赋值的方式有点像,是两个独立的箱子。 例二 (deepcopy) 可以拷贝list in list import copy spam=list('axiba') spam1=copy.deepcopy(spam) print(spam) print(spam1) print(spam==spam1) print(spam is spam1) print('-----修该之前------') spam[0]='++' print(spam) print(spam1) alist=[1,2,3,['a','b','c']] print(alist) 一copy 例子: import copy spam=[1,2,3,['a','b','c']] spam1=copy.copy(spam) print(spam) print(spam1) print(spam==spam1) print(spam is spam1) print('-----修该之前------') print(len(spam)) spam[3][0]='++' print(spam) print(spam1) 结论: 和字段列表相像,有共同的一张纸,他们修改的是同一个箱子。 二deepcopy 例子: import copy spam=[1,2,3,['a','b','c']] spam1=copy.deepcopy(spam) print(spam) print(spam1) print(spam==spam1) print(spam is spam1) print('-----修该之前------') print(len(spam)) spam[3][0]='++' spam[1]='@@' print(spam) print(spam1) 结论: 和赋值相像,有自己独立的箱子。 5.小游戏: h = [ ['.','.','.','.','.','.'], ['.','0','0','.','.','.'], ['0','0','0','0','.','.'], ['0','0','0','0','0','.'], ['.','0','0','0','0','0'], ['0','0','0','0','0','.'], ['0','0','0','0','.','.'], ['.','0','0','.','.','.'], ['.','.','.','.','.','.'] ] 步骤: 1. for i in range(8): for j in range(6): print(h[i][j],end='') print() . . . . . . . 0 0 . . . 0 0 0 0 . . 0 0 0 0 0 . . 0 0 0 0 0 0 0 0 0 0 . 0 0 0 0 . . . 0 0 . . . 2. for i in range(6): for j in range(9): print(h[j][i],end=' ') print() . . 0 0 . 0 0 . . . 0 0 0 0 0 0 0 . . 0 0 0 0 0 0 0 . . . 0 0 0 0 0 . . . . . 0 0 0 . . . . . . . 0 . . . . for i in range(5,-1,-1): for j in range(9): print(h[j][i],end=' ') print() . . . . 0 . . . . . . . 0 0 0 . . . . . 0 0 0 0 0 . . . 0 0 0 0 0 0 0 . . 0 0 0 0 0 0 0 . . . 0 0 . 0 0 . . 6.字典数据类型: 只会有键——值对, key1:value1,key2:value2 mystyle={ } 字典取值:dict[] 字典取值的方法: keys() 返回键对应的值 values() 返回值对应的键 items() 返回键值对 a={} print(a) print(type(a)) a={'size':'xxl','color':'red'} print(a) a['size'] a['color'] b=a a is b print(a) print(b) 7.猜生日小游戏 import os,sys b={'zhangsan':'908800','list':'1010101'} while True: print('please type the key:') name=input() if name == 'exit': sys.exit() if name in b: print(b[name]) continue else: print('字典里没有这个数据-') b[name]=input('请添加他的的生日信息:') continue