python基础学习 str,list,dict,set,range,enumerate

Posted ming-yuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础学习 str,list,dict,set,range,enumerate相关的知识,希望对你有一定的参考价值。

一、字符串 s = ‘python‘ s1 = ‘python‘ + ‘learn‘ #相加其实就是简单拼接 s2 = ‘python‘ * 5 #相乘其实就是复制自己多少次,再拼接在一起 字符串切片: a= ‘abcdefg‘ print(a[0]) # 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。 print(a[0:]) #默认到最后 print(a[0:-1]) #-1就是最后一个 print(a[0:5:2]) #加步长 print(a[5:0:-2]) #反向加步长 print(s.capitalize()) #首字母大写 print(s.swapcase()) #大小写翻转 print(s.title()) #每个单词的首字母大写 print(‘learn‘.center(20,‘*‘)) #居中,总长度,空白处填充 print(‘learnnnn‘.count(‘n‘,0,6)) #计算字符串中某元素出现的个数,可切片。 print(‘pyt 12345ho n‘.expandtabs()) #补全 (tab -> 8个字符) # pyt 12345ho n print(‘python‘.find("pyt",1,6)) #返回的找到的元素的索引,如果找不到返回-1 print(‘python‘.index("pyt",1,6)) #返回的找到的元素的索引,找不到报错。 #str <---转---> list print(‘‘.join({‘1‘,‘2‘,‘3‘})) #""中是什么,就以什么作为拼接符,将参数中所有的str元素合并为一个新的字符串 print(‘py t,hon‘.split()) #以什么分割,最终形成一个列表此列表不含有这个分割的元素。默认空格。 print(‘py t.h.on‘.rsplit(‘.‘,1)) #从右往左,取一个分割符 #[‘py t.h‘, ‘on‘] print(‘ python* ‘.strip()) #默认去掉两端的空格。 #python* print(‘* *python*‘.rstrip(‘*‘)) #去掉字符串右边的空格‘*‘ #* *python print(‘* *python*‘.lstrip(‘*‘)) #去掉字符串左边的空格‘*‘ # *python* print(‘abcbc‘.replace(‘bc‘,‘SB‘,1)) #替换,且替换一处 #aSBbc #.format的三种格式化输出 res1=‘{} {} {}‘.format(‘a‘,18,‘male‘) res2=‘{1} {0} {1}‘.format(‘a‘,18,‘male‘) res3=‘{name} {age} {sex}‘.format(sex=‘male‘,name=‘a‘,age=18) print(res1,‘ ‘,res2,‘ ‘,res3) print(‘abc123‘.isalnum()) #字符串由字母或数字组成 print(‘abc123‘.isalpha()) #字符串只由字母组成 print(‘abc123‘.isdigit()) #字符串只由数字组成 二、元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。 例:tup1=(1,2,3) tup2=("a","b","c") tup3=(1,2,[],{}) #tup3中的[],{}可修改,因为tuple存的是list和dict的内存地址,用id()查 注:如果元组里面只有一个元素切不加“,”,那么元素是什么类型,就是什么类型。 三、列表list: li = [1,‘a‘,‘b‘,2,3,‘a‘] # li.insert(0,55) #按照索引去增加 # li.append(‘aaa‘) #增加到最后 # li.append([1,2,3]) #增加到最后 # li.extend([1,2,3]) #迭代添加 # l1 = li.pop(1) #按照位置去删除,有返回值 # del li[1:3] #按照位置去删除,也可切片,删除没有返回值。 # li.remove(‘a‘) #按照元素去删除 # li.clear() #清空列表 # li[1] = ‘dfasdfas‘ #改,对某个元素直接赋值 # li[1:3] = [‘a‘,‘b‘] #对切片范围赋可迭代对象,将迭代值插入到列表(在选定范围处,有多少插多少,原索引往后移,被选范围将不复存在) # 查 #切片查,或者循环查 # print(li.count("a")) #统计某个元素在列表中出现的次数 # print(li.index("a")) #从列表中找出某个值第一个匹配项的索引位置,没有会报错 # li.sort() #方法用于在原位置对列表进行排序。str与int并存会报错 # li.reverse() #方法将列表中的元素反向存放。 深浅copy: L1 = [1,2,3] L2 = L1 # id(L1)=id(L2) #指向同一个内存地址,修改L1,L2 也会变 L3 = L1[:] # id(L1)!=id(L3) #切片赋值给L3,新开辟内存,互不干扰 L = [‘a‘] L1 = [1,2,L] #L1的第三个元素是L的内存地址 L4 = L1[:] #切片只是复制一层元素给L4,复制L的地址给L4,不复制L指向的值 L1[-1].append(‘b‘) #L1[2]与L4[2]都指向L,所以L1[2] == L4[2] import copy L5 = copy.deepcopy(L1) #对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。 四、字典dict: #键唯一,可哈希。 # dic = {"name":"A","age":18,"sex":"male"} # dic1 = {"name":"B","weight":100} # dic1.setdefault(‘weight‘) # 有键值对,不做任何改变,没有才添加。# dic1.setdefault(‘weight‘,100) # value1 = dic["name"] # 没有会报错 # value2 = dic.get("djffdsafg","默认返回值") # 若没有可以返回设定的返回值 # dic[‘k‘]=‘v‘ # 添加 # print(dic1.pop(‘age‘)) # 有返回值,按键删除 # dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 # item = dic.items() # keys = dic.keys() # values = dic.values() # dic_clear = dic.clear() # 清空字典 #字典的循环 # for key in dic: #key为键 # for item in dic.items(): #item = (‘name‘, ‘A‘) # for key,value in dic.items(): #key,value = ‘name‘, ‘A‘ 五、enumerate #枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串), #enumerate将其组成一个索引序列,利用它可以同时获得索引和值。 >>>s = enumerate([1,2,3,4,5,6]) >>>s.__next__() >>>(0, 1) # for i in enumerate(li): # for index,name in enumerate(li,2): # 起始位置默认是0,可更改 六、range #指定范围,生成指定数字。 #1.默认是从小到大 #2.范围是从小到大,步长需为正 #3.范围是从大小大,步长需为负 #不满足这三点只是空列表[] # for i in range(1,10): # for i in range(1,10,2): # 步长 # 范围是从小到大,步长需为正 # for i in range(10,1,-2): # 反向步长 # 范围是从大小大,步长需为负 五、集合set: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:   去重,把一个列表变成集合,就自动去重了。   关系测试,测试两组数据间的交集、差集、并集等关系。 set1 = set({1,2,‘hobby‘}) set2 = {1,2,‘hobby‘} print(set1,set2) # {1, 2, ‘hobby‘} {1, 2, ‘hobby‘} set1.add(‘女神‘) set1.update([1,2,3]) #update:迭代添加,不重复 set1.remove(1) # 删除一个元素 set1.pop() # 随机删除一个元素 set1.clear() # 清空集合 del set1 # 删除集合 set1 & set2 #交集。(& 或者 intersection) set1 | set2 #并集。(| 或者 union) set1 - set2 #差集。(- 或者 difference) set1 ^ set2 #反交集。 (^ 或者 symmetric_difference) set1 < set2或set1.issubset(set2) # set1是set2子集。bool值 set2 > set1或set2.issuperset(set1) # set2是set1超集。bool值 #列表去重 # 1i=[1,2,33,33,2,1,4,5,6,6] # set1=set(1i) # 1i=list(set1) #frozenset不可变集合,让集合变成不可变类型(不可添加删除)。 s = frozenset(‘www‘) print(s,type(s)) # frozenset({‘w‘})

以上是关于python基础学习 str,list,dict,set,range,enumerate的主要内容,如果未能解决你的问题,请参考以下文章

Python 字符串/列表/元组/字典之间的相互转换

Python学习15之python内置六大标准类型

Python基础

Python基础学习

python学习之遇到得基础报错

python基础之字典dict