python第三天


#字典 info = { 'stu1101':"TenLan Wu", 'stu1102':"LongZe Luola", 'stu1103':"XiaoZe Maliya" } #查找 print(info) print(info['stu1101'])#当不存在是会报错 print(info.get('stu1104'))#不会报错,不存在是返回None print('stu1104' in info)#判断是否存在,存在输出不存在则不输出 #修改 info['stu1101'] = '武藤兰' print(info['stu1101']) #添加 info['stu1104'] = 'CangJingKong' print(info) #删除 info.pop('stu1102') del info['stu1101'] #info.popitem()#随机删除 print(info) #合并 b = { 'stu1103':'BoDuo YeJiYi', 'syu1108':'Tian HaiYi' } info.update(b) #没有的合并,重复的覆盖 print(info) #字典转成列表 print(info.items()) #初始化字典 c = dict.fromkeys([6,7,8],[1,{'name':'xxxx'},4444]) print(c) c[7][1]['name'] = '低配周杰伦' #类似浅复制的问题,只有在一层的情况下才能用fromkeys创建 print(c) #字典的循环 for i in info: print(i,info[i]) for k,v in info.items(): print(k,v) #速度慢,需要转换为列表
字典 dictionary

字電是python中唯一的映射類型,採用鍵值對的形式存儲數據
字典是除列表以外python中最靈活的內置數據結構類型,列表是有序的對象集合,字典是無序的对象集合
兩者的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取

特點:無序,鍵唯一

字典的創建:
dic1={'name':'alex','age':33,'sex':'male'}
print(dic1)

dic2=dict((('name','alex'),))
print(dic2)

#增 setdefault
dic3.setdefault('age', 34)
#如果有鍵就不添加,沒有鍵會添加進去,有鍵的話setdefault會把對應的值返回
print(dic3)

#查 通過鍵去查

dic4={'name':'alex','age':33,'sex':'male'}

print(dic4['name'])

print(dic4.keys())#查找所有鍵
print(dic4.values())#查找所有值
print(dic4.items())#查找所有鍵和值

#改 直接按照鍵修改值就可以 ;update方法

dic5 = {'name': 'alex', 'age':33, 'sex':'male'}

dic5['name'] = 'hua'
print(dic5)

dic6 = {'1':222,'3':444}
dic5.update(dic6)#相當於extend在後面添加,有的話覆蓋,沒有添加
print(dic5)
print(dic6)


#刪

dic7 = {'name': 'alex', 'age':33, 'sex':'male'}

print(dic7.pop('age'))#刪除鍵值對,會返回一個值
del dic7['name']#刪除鍵值對
dic7.clear()#清空內容,但是字典還在
print(dic7)
dic7 = {'name': 'alex', 'age':33, 'sex':'male'}
a = dic7.popitem()#隨機刪除一個鍵值對
print(a, dic7)

del dic7#刪除整個字典,內存都找不到了


#其他操作以及涉及到的方法

dic8 = dict.fromkeys(['hhh','ccc','rrrr'],'sss')
print(dic8)#{'hhh': 'sss', 'ccc': 'sss', 'rrrr': 'sss'}

dic9 = dict.fromkeys(['hhh','ccc','rrrr'],['sss','www'])
print(dic9)#{'hhh': ['sss', 'www'], 'ccc': ['sss', 'www'], 'rrrr': ['sss', 'www']}

dic9['hhh'][1]='xxx' #淺拷貝
print(dic9)#{'hhh': ['sss', 'xxx'], 'ccc': ['sss', 'xxx'], 'rrrr': ['sss', 'xxx']}



#字典嵌套

#排序
dic10 = {5:'555',2:'333',4:'6666'}
print(sorted(dic10)) #結果把鍵排序

print(sorted(dic10.values())) #值排序
print(sorted(dic10.items()))
print(sorted(dic10.keys()))


#字典的遍曆--重要

dic11 = {'name': 'alex', 'age':33, 'sex':'male'}

for i in dic11:#默認打印的是鍵
print(i)



#字符串操作 string 操作

a='123'
print('hello'*2)#重複輸出:hellohello
print('helloworld'[2:])#從索引為2的位置到最後取出lloworld
print('el' in 'hello') #如果字符串中包含給定的字符返回True
print(123 in [23,45,123]) #如果字符串中包含給定的字符返回True

#格式化輸出
print('%s is a good teacher'%'alex')


#字符串拼接
a = '123'
b = 'abc'
a+b = '123abc'

c = ''.join([a,b]) #以前面單引號裏的字符串進行拼接
print(c)

#字符串的內置方法

name = "my name is {name} and i am {year}"

print(name.capitalize()) #首字母大写
print(name.count("e"))#统计字符的数量
print(name.center(40,"-"))#总长度,补全的字符
print(name.endswith("ss"))#判断以什么结尾
print(name.find("boss"))#查找字符位置
print(name.rfind('i'))#找最右的字符
print(name[name.find("the"):])#字符串的切片
print(name.format(name='lihaitao',year=18))
print(name.index("is")) #查找
print('dsa232'.isalnum())#是否只包含数字和英文字符
print('dsa232'.isalpha())#是否只英文字符
print('A232'.isalnum())#是否为十进制
print('A232'.isdigit())#是否为整数
print('A232'.isidentifier())#判断是否为合法的变量名
print('A232'.isnumeric())#与isdigit()一样
print(' '.isspace())#是否为一个空格
print('My Name Is'.istitle())#首字母是否都为大写
print('My Name Is'.isupper())#是否全为大写
print(','.join(['1','2','3','4']))
print(name.ljust(50,'*'))#长度,补全
print(name.rjust(50,'*'))
print('Lihaitao'.lower())
print('Lihaitao'.upper())
print(' Lihaitao'.strip())#去掉回车和空格,rstrip右边,lstrip左侧

p = str.maketrans('abcdef$','1234567')
print('$avbdsdcz'.translate(p))#类似加密的一个替换

print('lihaitao'.replace('a','A',1))#替换和替换的数量
print('1+2+3+4'.split('+'))#提取
print('1+2 3+4'.splitlines())#以换行提取
print('Lihaitao'.swapcase())#大小写互换
print('Lihai tao'.title())#每个单词首字母大写

#列表


import copy

names = ["张三","李四","王五","赵六",["郝","陈"]]

print(names[1:3])
print(names[-1])
print(names[-3:-1])
print(names[-3:]) #0可以省略
print(names[0:-1:2])#步长切片

#增
names.append("李星")
print(names)
names.insert(1,"胖子") #位置,内容
print(names)

#删
names.remove("张三")
print(names)
del names[1]
print(names)
names.pop(2)#没有参数默认删除最后一个
print(names)

#查
print(names.index("王五"))

#统计
print(names.count("李星"))

#删除列表
#names.clear()

#反转
names.reverse()
print(names)

#排序
names.sort()
print(names)

#合并
names2 = [1,2,3,4]

names.extend(names2)
print(names)



#复制
name2 = names.copy()#浅copy   与name2 = copy.copy(names)和name2 = names[:]一样
name3 = copy.deepcopy(names)#深copy
print(names)
print(name2)
print(name3)
names[1]="李"
names[-1][0]="板云"
print(names)
print(name2)
print(name3)


#列表循环
for i in names:
    print(i)
无论你选择做什么,追求完美的程度决定你成就的高度。
原文地址:https://www.cnblogs.com/chiyhua/p/12220636.html