Python List/Tutle/Set/Str/Dict
name = ['wuchao','jinxing','xiaohu','sanpang','ligang'] #用中括号括起来的是列表,可以增删改查。 #列表的元素索引是从0开始的 0 1 2 3 .. #查 print(name[3]) #中括号里的是元素的位置 print(name[1:3]) #取左不取右 print(name[-1]) #取最后一个 print(name[1:-1]) print(name[1:-1:1]) #从左到右一个一个去取 最后一个1是步长 name2 = name[:] #切name列表的全部元素 print(name2) #此时name2和name一样 #增 name.append('tianxi') #增加的元素在列表的最末尾 name.insert(1,'tianxi') #1就是将新元素插入的索引值 #改 name[1] = 'tiantian' #切片到要更换元素的位置,直接赋值 name[1:3] = ['tiantian','shiwei'] #多个元素时,需要赋值给列表 #删 name.remove('jinxing') #直接删除元素, name.pop(1) name3 = name.pop(1) #通过索引删除,并打印出所删除的元素 name.clear() #清空该列表所有元素 del name[0] #可以删除任意元素和列表(列表直接删除并不是清空列表) #其他操作 ['wuchao','jinxing','xiaohu','sanpang','ligang'].count('xiaohu') #计算元素出现在列表的次数 a = [1,2,3] b = [4,5,6] a.extend(b) #把列表b放到列表a,b并没有变化 c = name.index('xiaohu') print(c) #找到元素在列表中的索引 name.reverse() print(name) #将列表中元素位置倒过来 x = [4,5,6,8,1,2,9] x.sort() #将列表中的数字进行排序 x.sort(reverse=True) #列表中的元素排序后再倒过来 print(x)#[1,2,4,5,6,8,9] #身份判断 type(name) is list #判断name是否是一个列表,list是列表的意思 #元组 typle #元组可以理解为只读列表,不同的是[]改为() #创建元组是,只有一个元素时,在元素后边加 , name = ('wuchao','jinxing','xiaohu','sanpang','ligang') print(name[1:3]) #和列表读取一样
#集合 把不同的元素组成在一起 集合中的元素都是不可变得,而且无序 #可哈希 = 不可变类型 #set(可变集合) frozenset(不可变集合) # s = set('abcl li') # s1 = ['li','lin','li'] # print(set(s1)) # print(s) #{'b', 'c', 'i', 'a', ' ', 'l'} (去重复) li = [2,3,'lin'] s = set(li) # print(2 in s) #True # print('li' in s) #False # s.add('uu') # print(s) # {2, 3, 'uu', 'lin'} # s.update('ops') # print(s) # {2, 3, 'lin', 's', 'p', 'o', 'uu'} s.update([12,'eee']) # {'eee', 2, 3, 12, 'lin'} print(s) a = set([1,2,3,4,5]) b = set([4,5,6,7,8]) print(a.intersection(b)) #{4, 5} intersection交集 print(a.union(b)) #{1, 2, 3, 4, 5, 6, 7, 8} union 并集 print(a.difference(b)) #{1, 2, 3} ifference 差集 in a not in b print(a.symmetric_difference(b)) #{1, 2, 3, 6, 7, 8} symmetric_difference 对称差集 print(a | b) #{1, 2, 3, 4, 5, 6, 7, 8} print(a-b) #{1, 2, 3} print(b-a) #{8, 6, 7} print(a^b) #{1, 2, 3, 6, 7, 8} print(a&b) #{4, 5} print(a.issuperset(b)) #False 判断 a>b print(a.issubset(b)) #False 判断 a<b
#字符串 string a = "Let's go" print(a) print('lilinpei'[3:]) #切片和列表相同 print('li' in 'lilinpei') #True 判断字符串是否在字符串里 print('linpei is a good teacher') print('%s is a good teacher'%'linpei') #%s 可替换的字符串(多个字符串用,隔开) %d 可替换的整形 #字符串拼接 a = '123' b = 'abc' c = '---'.join([a,b]) #通过‘---’把拼接的字符串拼接起来,可以为空字符串 #[a,b]可以,(a,b)也可以 #字符串内置方法 #重要的 st = 'hello kitty {name} is {age}' print(st.count('l')) #查询字符串中'l'的个数 print(st.startswith('he')) #判断某个内容是否是开始,True或False print('abc'.center(20,'-')) #--------abc---------,字符串居中,用-填充 print(st.find('t')) #寻找内容在字符串中的索引位置,将索引值返回 print(st.format(name = 'linpei',age = 24)) #(格式化输出的另 一种方式)在字符串中添加变量,可赋值 print(' My name\n'.strip()) #My name #print('ok') #把开始和结尾的空格和换行符去掉 ok print('My name'.replace('n','f',1)) #My fame,替换内容,1为替换次数 print('My name is linpei'.split(' ')) #把字符串用空格(内容)分成列表 #['My', 'name', 'is', 'linpei'] print('abc'.islower()) #判断字符串是否都是小写 print('ABC'.isupper()) #判断字符串是否都是大写 #只用知道就行 print(st.capitalize()) #首字母进行大写 print(st.endswith('y')) #判断某个内容是否是结尾,True或False print(st.expandtabs()) print(st.format_map({'name':'linpei','age':24})) #同上 print(st.index('t')) #同find形同,找不到该内容后回报错 print('154651sd'.isalnum()) #判断是否只包含字母或数字 print('2100'.isdecimal()) #判断字符串是否是10进制 print('123'.isdigit()) #判断是否是一个整形(整数) print('123.13'.isnumeric()) #同上 print('45abc'.isidentifier()) #判断是否是一个非法变量(不能以数字开头) print(' '.isspace()) #判断是否是空格 print('My Name Is Linpei'.istitle()) #判断字符串中每个单词首字母是否全是大写 print('ABC'.lower()) #所有大写变小写 print('abc'.upper()) #所有小写变大写 print('Abc'.swapcase()) #大写变小写,小写变大写 print('abc'.ljust(10,'-')) # abc------- print('abc'.rjust(10,'-')) #-------abc print(' My name\n'.lstrip()) #只把左边的空格和换行符去掉 print(' My name\n'.rstrip()) #只把右边的空格和换行符去掉 print('My namengr'.rfind('n')) #从右往左数第一个内容的真实索引值 print('My namengr'.lfind('n')) #从左往右数第一个内容的真实索引值 print('My name is linpei'.split('i')) print('My name is linpei'.rsplit('n',2)) #从右到左以第n个内容为分割,n=1 print('My name is linpei'.title()) #将所有单词的首字母大写
dic两种创建方式 dic = {'name':'linpei','age':24,'hight':170,'hobby':'girl'} dic1 = dict((('name','linpei'),('age',24))) print(dic) print(dic['name']) #通过键来取出 #字典里可以是任何类型 #'name':'linpei',,,,name叫做键,是一定只能为不可变类型,'linpei'为值 #不可变类型:整形,字符串,元组 #可变类型:列表,字典 #增 dic['red'] = 'what' #增加一个键值对 dic.seteefault('when',57) #如果键相同,则添加不成功 ret = dic.seteefault('age',58) print(ret) #键相同,则返回字典中的值 #增加的键字典中不存在时,返回新加的值 #查 通过键来查找值 print(dic['name']) #查找键对应的值 print(dic.keys()) #查字典中所有的键 print(dic.values()) #查字典中所有的值 print(dic.items()) #取字典中所有的键值对 #改 dic['age'] = 55 #更改age dic.update(dic1) #将dic1增加到dic,dic1不变,如果dic1中存在dic中的键,将会覆盖 #删 del dic['name'] #删除整个键值对 dic.clear() #清空字典 dic.pop('age') #删除键值对后输出删除的值 dic.popitem() #随机删除一组键值对,并以元组方式返还值 #其他操作字典的方法 dic = dict.fromkeys(['host1','host2','host3'],['test1','test2']) print(dic) #dic = {'host1': ['test1', 'test2'], 'host3': ['test1', 'test2'], 'host2': ['test1', 'test2']} dic['host2'][1] = 'test3' print(dic) #{'host2': ['test1', 'test3'], 'host1': ['test1', 'test3'], 'host3': ['test1', 'test3']} #字典嵌套 av_catalog = ["欧美"]["www.youporn.com"][1] = "质量很好" #字典排序 print(sorted(dic)) #对键排序,打印键 print(sorted(dic.values())) #对值排序,打印值 数字和字符串不能比较 print(sorted(dic.items())) #对键排序,打印键值对 #字典的遍历 dic = {'name':'linpei','age':24} for i in dic: #age 24 name linpei 效率高 print(i,dic[i]) for i,v in dic.items(): print(i,v) #age 24 name linpei 效率低