python笔记5—day5

知识点回顾

列表的增删改查等一些操作方法

增 append insert extend
删 remove pop clear del
改 li[索引] = '被修改的内容' li[切片]:'被修改的内容'
查 for循环
range
元祖:
count()
len()
li.index('元素')
sort(reverse = True)
li.sort()
print(li.sort())
reverse()反转
ps:
join: list ----->str
S.join(iterable)
li = [1,2,3]
s1 = str(li)
split str---->list

知识点

1、字典的增删改查

1.1、增

#普通增加
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
dic1['hobby']='youxi'#没有键值对,添加
print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'}
dic1['age']=20#有键值对,则覆盖,这个也可以用做改字典的值
print(dic1)#结果为{'age': 20, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'}

#setdefault 操作方法增加
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
dic1.setdefault('hobby')#增加一个键值对,但没有值,他会默认添加None
print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': None}

dic1.setdefault('hobby','youxi')
print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'}

dic1.setdefault('name','youxi')#有键值对不做任何改变,没有就添加
print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男'}

1.2、删

#pop 按键去删
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
print(dic1.pop('age'))#有返回值 18
print(dic1)#结果为{'name': 'liu', 'sex': '男'}
print(dic1.pop('xiao',None))#在删除一个不知道有没有键的时候,需要在后面加上None

#popitem 随机删除,有返回值,返回的数据类型是元祖,元祖里的是键值
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
print(dic1.popitem())#结果为('sex', '男')
print(dic1)#结果为{'age': 18, 'name': 'liu'}

#clear 清空字典
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
dic1.clear()
print(dic1)#结果为{}

#del 可删除键值对,也可删除整个字典

dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
del dic1['age']#这个没有返回值
print(dic1)#结果为{'name': 'liu', 'sex': '男'}
del dic1
print(dic1)#因为没有字典dic1,所以会报错

1.3、改

#update
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
dic2={
    'age':20,
    'hobby':'youxi'
}
dic2.update(dic1)#把字典dic1的数据弄到字典dic2里,有的键值对的覆盖,没有的就添加
print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男'}
print(dic2)#结果为{'age': 18, 'hobby': 'youxi', 'name': 'liu', 'sex': '男'}

1.4、查

dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
print(dic1.keys())#打印出来的结果是字典dic1的键
#结果为dict_keys(['age', 'name', 'sex'])
print(dic1.values())#打印出来的结果是字典dic1的值
#结果为dict_values([18, 'liu', '男'])
print(dic1.items())#打印出来的结果是字典dic1的键、值
#结果为dict_items([('age', 18), ('name', 'liu'), ('sex', '男')])

#通过键查找值
print(dic1['name'])#如果字典没有这个键,他就会报错
print(dic1.get('name1',None))#get 也是通过键查找值,如果字典里没有这个键,他会返回你设置的一个数
#PS:一行代码给a,b输入值和实现a,b值的互换(附加一个知识点)
a,b=1,2
print(a,b)#结果为1 2

a,b=b,a
print(a,b)#结果为2 1
#通过for循环打印键,值和键值对
dic1={
    'age':18,
    'name':'liu',
    'sex':'',
}
for i in dic1.keys():
    print(i)
print('')
for j in dic1.values():
    print(j)
print('')
for x,y in dic1.items():
    print(x,y)
'''
上面的结果为:
age
name
sex

18
liu
男

age 18
name liu
sex 男
'''

2、字典的嵌套

dic1={
    'name':['liu','xiao','long'],
    'hobby':{
        'youxi':'wangzhe',
        'yundong':'paobu',
    },
    'age':12
}
#修改age为15
dic1['age']=15
print(dic1)
#在name添加一个人名
dic1['name'].append('nb')
print(dic1)
#把name里的xiao改成大写
dic1['name'][1]=dic1['name'][1].upper()
print(dic1)
#在hobby里在差一个键值对
dic1['hobby']['lvyou']='xizang'
print(dic1)

课后习题

1、字典dic={'k1':'v1','k2':'v2','k3':[11,22,33]}

#1)请循环输出所有的key
dic={'k1':'v1','k2':'v2','k3':[11,22,33]}
for i in dic.keys():
    print(i)
#2)请循环输出所有的value dic={'k1':'v1','k2':'v2','k3':[11,22,33]} for i in dic.values(): print(i)
#3)请循环输出所有的key和value dic={'k1':'v1','k2':'v2','k3':[11,22,33]} for x,y in dic.items(): print(x,y)
#4)请在字典中添加一个键值对,'k4':'v4',输出添加后的字典 #方法一 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k4']='v4' print(dic) #方法二 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic.setdefault('k4','v4') print(dic)
#5)请修改字典中'k1'的对应值为'alex',请输出修改后的字典 # 方法一 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k1']='alex' print(dic) # 方法二 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic1={'k1':'alex'} dic.update(dic1) print(dic)
#6)请在'k3'对应值追加一个元素44,输出修改后的字典 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k3'].append(44) print(dic)
#7)请在'k3'队长硬质的第1个位置插入元素18,输出修改后的字典 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k3'].insert(0,18) print(dic)

2、li=[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存到第一个key中,小于66的保存到第二个可key中(即:{'k1':大于66的所有值,'k2':小于66的所有值})

li=[11,22,33,44,55,66,77,88,99,90]
less=[]
greater=[]
dic={}
for i in li:
    if i<66:
        less.append(i)
    elif i>66:
        greater.append(i)
dic.setdefault('k1',greater)
dic.setdefault('k2',less)
print(dic)

3、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:
1:页面显示 序号 + 商品名称,如:
  1 手机
  2 电脑
  …

2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。

li = ["手机", "电脑", '鼠标垫', '游艇']
print('欢迎光临本店,本店有以下商品。')
while 1:
    print('序号''\t''商品名称')
    for i in li:
        print(' {}\t\t {}'.format(li.index(i)+1,i))
    x=input('请输入您要购买的商品的序号/输入Q或者q退出>>>').strip()
    if x.isdigit():
        x=int(x)
        if x>0 and x<=len(li):
            print('{}'.format(li[x-1]))
        else:
            print('您输入的商品序号并不在范围内!')
    elif x.upper()=='Q':
        print('感谢您光临本店,欢迎您下次继续光临本店!')
        break
    else:
        print('请输入您要购买的商品的序号,不是商品名称。')
posted @ 2019-08-19 17:07  精灵飞舞之季的低语  阅读(143)  评论(0编辑  收藏  举报