7.26第三周学习记录
7.26第三周学习记录
学习内容
1.元组是不可变的,小括号表示
元组的创建方法三种:
tuple1 = (元素1,元素2......) tuple2 = () tuple3 = tuple(range(xx,xxx))#将循环的结果作为数值元组
2.访问元组元素
直接print() 索引print(untitle[3]) 切片print(untitle[0,3])
3.修改元组
不能单独修改元组的元素呢,要整个元组修改
不能元组+字符串,但可通过加个逗号令字符串变成元组
4,元组推导式
for遍历法、tuple()法、__next()__法
访问生成器后,这个生成器就不存在了。再用它要重新生成。
5,元组和列表的区别:
元组不可变、列表可变;
元组可作字典的键,列表不可以作字典的键
6,字典的创建和删除
字典的键只能是元组,不能是列表。zip()函数将列表转换为了元组
7.访问字典的元素
dictionary.get('key',[默认值])
eg.
print(word.get('ch','我的字典里没有它')) 回复‘ch’对应的值,否则返回‘我的字典里没有她’
还可通过key值访问,print(word['che'] if 'che' in word else '我的字典里没有它'
8. 遍历字典
字典.items() 返回的是可遍历的元组列表
sign.values(): #keys/values,得到键值列表/值列表
9. 添加、修改、删除字典的值
dictionary[key] = value
key是唯一的,value可以不唯一
10.字典推导式
{键表达式:值表达式 for 循环}
11.集合的创建
set可变集合,用来保存不重复的元素,不支持索引
空字典:{}
空集合:set()
12.集合的添加、删除
setname.add(元素)
remove()删除指定元素 pop()随缘删 clear()全都删
13.集合的交集、并集、差集
14. 列表 元组 字典 集合 的区别
是否可变 是 否 是 是
是否重复 是 是 是 否
是否有序 是 是 否 否
15.截取字符串
str1[2:5:1] 包含头,不包含尾,与切片相似
代码部分
创建元组
number = (7,14,21,28,35,42,49)
print(number)
string = ("卡农","渔舟唱晚","欢乐颂")
print(string)
untitle = (1,"haha",2,(3,"Hellow","world"),["Wang","yuanning",666])
print(untitle)#元组可以包括列表
verse = ("一片冰心在玉壶")
print(verse,type(verse))#()是把多行内容连接
verse = ("一片冰心在玉壶",)
print(verse,type(verse))#()是元组了
创建数值元组
tuple1 = tuple(range(2,21,2))
print(tuple1)
#删除元组 del(),删的是元组本身,不是清空内容。只能删存在的元组
访问元组元素、enumerate()函数功能
untitle = ("wyn","cj","lsm",["lmy"],("aaa","bbb"))
print(untitle)
print(untitle[3]) #索引值、切片访问
print(untitle[0 : 4])
for obj in untitle:
print(obj,end = ' ')
print("\n2017-2018赛季NBA前八名")
team = ("yi","er","san","si","wu","liu","qi","ba")
for i,j in enumerate(team): #enumerate()将索引值和元素连接在一起
if i % 2==0: #如果是索引值是第二个,换行
print(j," ",end='')
else:
print(j)
修改元组元素
coffee = ('wyn','cj','lsm','lmy','aaa','bbb')
coffee = ('wyn','cj','lsm','lmy','ccc','bbb') #元组不能单独改某一个元素
print(coffee)
newcoffee = ('zzz',) #这里的逗号是为了让newcoffee为元组,而不是字符串。
allcoffee = coffee + newcoffee #元组+元组可,但不能元组+字符串!!!
print(allcoffee)
元组推导式
#tuple()函数法
import random
num = (random.randint(10,100) for i in range(10) ) #这里num是一个生成器
print(tuple(num)) #要加tuple()函数!
#for遍历法
for i in num:
print(i,end=' ') #结果是只有一组随机数。(即上面那个方法的)
#这是因为,访问该生成器后,这个生成器就不存在了。再用它要重新生成
#next()方法:
num = (random.randint(10,100) for i in range(10) ) #这里num是一个生成器
print(num.next()) #输出第一个元素
print(num.next()) #输出第二个元素
print(num.next()) #输出第三个元素
字典的创建和删除
#直接定义
word = {'che':'车','chen':'陈','cheng':'称','chi':'吃'}
print(word)
#利用dict(zip(xxx,xx))转换
key = ['che','chen','cheng','chi']
value = ['车','陈','称','吃']
zip1 = zip(key,value) #转换为zip对象
word = dict(zip1)
print(word)
dictionary = dict(che = '车',chen = '陈', cheng = '称',chi = '吃') zip()将列表转为元组,dict()将元组转为字典
print(dictionary)
#只有名称,没有内容的字典
dictionary1 = dict.fromkeys(key)
print(dictionary1)
#删除字典
del dictionary
print(dictionary)
#删内容,不删字典 dictionary.clear()
访问字典元素
#根据指定的键访问字典的元素
key = ['che','chen','cheng','chi']
value = ['车','陈','称','吃']
zip1 = zip(key,value) #转换为zip对象
word = dict(zip1)
print(word['che'] if 'che' in word else '我的字典里没有它') #根据key值进行访问
#get方法
print(word.get('che')) #get方法返回‘che’对应的值
print(word.get('ch','我的字典里没有它')) #有‘che’回复‘车’,否则‘我的字典里没有它’(默认是None)
#再来一个值
zuci = ['开车','陈介','称重','吃饭']
word1 = dict(zip(value,zuci))
print('che的汉字是:',word.get('che') ) #这里word.get('che')就是汉字“车”
print('che的汉字可以组词: ', word1.get(word.get('che'))) #word1中‘车’对应的词组
遍历字典
sign = {'Alice':'Amecrica','Charlie':'China','Bob':'Britain','Rue':'Russia'}
print(sign.items()) #字典.items() 返回的是可遍历的元组列表
for item in sign.items():
print(item) #这样得到的是元组
print('')
for key,item in sign.items():
print(key,item) #这样得到的是具体的键和值
#获取键列表或者值列表
for i in sign.values(): #items改成key/value,得到键值列表/值列表
print(i)
添加、修改、删除字典的元素
sign = {'Alice':'Amecrica','Charlie':'China','Bob':'Britain','Rue':'Russia'}
sign['wyn'] = "China" #添加元素
sign['wyn'] = "France" #修改元素
print(sign)
if 'wyn' in sign:
del sign['wyn'] #删除元素
print(sign)
字典推导式
import random
dict1 = {i : random.randint(10,100) for i in range(1,5)} # {键:值 for 循环}
print(dict1)
print('')
name = ['Alice','Bob','Tony','Jan']
sign = ['America','Britain','Turkey','Japan']
dict2 = {i : j for i,j in zip(name,sign)} #字典推导式
print(dict2)
集合的创建
set1 = {'水瓶座','射手座','双鱼座','双子座','水瓶座'}#定义一个集合
print(set1)
print('')
set1 = set() #定义空集合
print(set1)
name = ['香凝','wtn','frq','香凝']
set2 = set(name) #列表转集合,用set()
print(set2) #集合里没重复元素
集合的添加、删除
mr = set(['abc','def','ghi','buff']) #定义一个集合
mr.add('王远宁') #添加元素
print(mr)
if 'abc' in mr:
mr.remove('abc') #删除指定元素
print(mr)
mr.pop() #pop()随缘删,用temp = mr.pop来看随缘删的是那个元素
print(mr)
print('')
mr.clear() #清空集合
print(mr)
交集、并集、差集
python = {'wyn','cj','lsm','lmy'}
c = {'wyn','cxt','wbh','zjh'}
print('选择python的学生:', python)
print('选择c:',c)
print('交集运算: ', python & c) #既选c又选pyhon的
print('并集运算: ', python | c)
print('差集运算: ', python - c) #选了python没选c的
截取字符串
str1 = "人生苦短,我用python!"
print(str1[1:9])
print('')
str2 = input("请输入身份证号: ") #截取身份证中的生日
print("身份证号: "+str2)
birthday = str2[6:10] + '年' + str2[10:12] + '月' + str2[12:14] + '日'
print('生日是'+birthday)