python零基础学习1-基础知识4-列表, 字符串与字典
列表
import copy list1=[] # 定义空的列表 list2=["A","B","C","D","E","F","G","H"] #定义新的列表 #------------------------取值------------------------- print(list2) #['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] print(list2[0]) #A, 打印角标为0的值 print(list2[1:3]) #['B', 'C'], 打印角标为1, 2的值, 要头不要尾, 该行为叫做"切片" print(list2[-1]) #H, 打印最后一个元素 print(list2[-2:]) #['G', 'H'], 打印最后两个元素, 尾坐标不填, 则默认为最后一个 print(list2[:3]) #['A', 'B', 'C'], 首坐标不填, 则默认为第一个 print(list2[0:-1:2]) #['A', 'C', 'E', 'G'], 步长为2 print(list2[::2]) #同上 #----------------------列表追加------------------------- list2.append("I") #追加元素"I" print(list2) #['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] list2.insert(1,"Z") #在目标位置插入元素Z print(list2) #['A', 'Z', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] #----------------------列表变更------------------------- list2[1]="temp" #修改下标为1的元素值为"temp" print(list2) #['A', 'temp', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] #----------------------删除------------------------------ list2.remove("temp") #删除值为"temp"的元素 print(list2) #['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] #----------------------查找------------------------------- print(list2.index("C")) #返回元素C的下标 print(list2.count("C")) #返回列表中元素C的个数 #---------------------其他--------------------------------- list2.reverse() #列表元素做反转 print(list2) #['I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A'] list2.sort() #列表元素做升序排序 print(list2) #['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'] list3=["bell","alex"] list2.extend(list3) #将list3合并入list2 print(list2) #['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'bell', 'alex'] #---------------------copy----------------------------------- list4=list2 print(list4) #此时, list4与list2指向相同的内存地址, 修改其中一个时, 会同步修改 list5=list2.copy() print(list5) #浅copy, 即只复制第一层. 如任一元素为列表, 则只复制元素的内存地址 list8=list2[:] #仍然为浅copy print(list8) list6=copy.copy(list2) #仍然为浅copy list7=copy.deepcopy(list2) #深copy, 完全复制 print(list6) print(list7) #----------------------循环----------------------------------- for i in list7: #打印所有元素 print(i) for index,i in enumerate(list7): #打印所有元素及其下标 print(index,i)
元组
列表的一种, 只是不能增删改, 只能查. 常用于DB链接等程序启动后不能被改动的配置.
eg: name=("alex","bell")
字符串
name="my name is bell, i am learning python" #-----------------------------基本处理-------------------------------------- print(name.capitalize()) #My name is bell, i am learning python; 首字母转大写 print(name.count("n")) #4; 字母n的个数 print(name.center(50,"-")) #------my name is bell, i am learning python-------; 两边补齐至50字符 print(name.ljust(50,"-")) #my name is bell, i am learning python------------- print(name.rjust(50,"-")) #-------------my name is bell, i am learning python print(name.zfill(50)) #0000000000000my name is bell, i am learning python print("-".join(["a","b","c"])) #a-b-c, 将列表元素连接起来 print(name.lower(),name.upper(), name.swapcase()) # 转小写, 转大写, 大小写互转 print(name.lstrip(), name.rstrip(), name.strip()) #去掉左侧, 右侧, 两边的空格与回车 #-----------------------------判断起始/终止字符-------------------------------- print(name.endswith("on"),name.endswith("a")) #True False; 判断是否以指定字符串结尾 print(name.startswith("my")) #-----------------------------查找-------------------------------------------- print(name.find("a"),name.rfind("a")) #从左侧/右侧开始查找指定字符串, 返回角标, 只查找第一个 print(name[name.find("a"):]) #ame is bell, i am learning python, 字符串可直接做列表用, 进行切片 #-----------------------------判断数据类型------------------------------------ print("a12".isalnum(),"a12.".isalnum()) #True False, 判断字符串是否只由英文字母+阿拉伯数字组成 print("erwerwe".isalpha(),"fewrewr1".isalpha()) #True False, 判断字符串是否只由英文字母组成 print("12".isdigit(),"0".isdigit(),"12.1".isdigit(),"-1".isdigit()) #TTrue True False False, 判断字符串是否为整数 print("ABC".islower(),"ABC".isupper()) #判断字符串是否为小写, 大写 print(" ".isspace()) #判断字符串是否为空格 print("Tell Me".istitle()) #判断是否每个单词都进行了首字母大写 #-------------------------------特殊处理---------------------------------------- p=str.maketrans("bell","1234") s="bell is sing a song \nnamed 'jingle bell'" print(s.translate(p)) #1244 is sing a song nam2d 'jing42 1244' print(s.replace("bell","bella",1)) #bella is sing a song named 'jingle bell'; 1为要替换的数量 print(s.split(" ")) #['bell', 'is', 'sing', 'a', 'song', '\nnamed', "'jingle", "bell'"] print(s.splitlines()) #['bell is sing a song ', "named 'jingle bell'"]
字典
#key-value,定义一个字典 info={ "name":"bell", "no":"0001", "sex":"female", } #----------------------------查找------------------------------ print(info) #{'name': 'bell', 'no': '0001', 'sex': 'female'}; 无序打印 print(info["name"]) #bell; 使用key值查找value, 如果key不存在会报错 print(info.keys()) #dict_keys(['name', 'no', 'sex']) 打印所有key值 print(info.values()) #dict_values(['bell', '0001', 'female']) 打印所有value print(info.get("name"),info.get("address")) #bell None; 如果key值存在就返回value, 如果不存在就返回None print(info.setdefault("name","eva")) #bell, 如果key值存在, 就返回value, 不对字段做任何修改 print(info) print(info.setdefault("age","29")) #bell, 如果key值不存在, 将值加入字典中 print(info) #----------------------------修改------------------------------- info["name"]="maple" print(info) #{'name': 'maple', 'no': '0001', 'sex': 'female'} #----------------------------添加-------------------------------- info["hobby"]="shopping" print(info) #{'name': 'maple', 'no': '0001', 'sex': 'female', 'hobby': 'shopping'} #----------------------------删除--------------------------------- del info["sex"] print(info) #{'name': 'maple', 'no': '0001', 'hobby': 'shopping'} info.pop("hobby") print(info) #{'name': 'maple', 'no': '0001'} info.popitem() #随机删除一个 print(info) #---------------------------合并及转化----------------------------------- score={ "no":15086, "math":137, "Chinese":124, "English":110, } info.update(score) #相同的key值, 更新value; 不同的key值, 进行插入 print(info) print(info.items()) #dict_items([('name', 'maple'), ('no', 15086), ('math', 137), ('Chinese', 124), ('English', 110)]), 转化为列表 #-----------------------------创建-------------------------------------- print(dict.fromkeys([6,7,8])) #{6: None, 7: None, 8: None}, 仅创建key值 print(dict.fromkeys([6,7,8], "test")) #{6: 'test', 7: 'test', 8: 'test'} print(dict.fromkeys([6,7,8], [1,{"name":"bell","sex":"female"},1])) #{6: [1, {'name': 'bell', 'sex': 'female'}, 1], 7: [1, {'name': 'bell', 'sex': 'female'}, 1], 8: [1, {'name': 'bell', 'sex': 'female'}, 1]} #注意: 第二层的字典仅赋值内存地址 #-----------------------------循环--------------------------------------- #方法1 (效率远高于方法2) for i in info: print(i, info[i]) #打印key值, 及value值 #方法2 for k, v in info.items() print(k,v)
浙公网安备 33010602011771号