09 Python列表字典相关内容练习

 

 

列表和字典组合练习

1.给name_list对应的列表追加一个值:赵六

dic ={'name_list':['张三','python','王五'],1:{'name':'西施','age':25,'sex':'女'},(1,2):[100,{'ip':'192.168.1.1','port':3306}]}
dic['name_list'].append("赵六")
print(dic)#{'name_list': ['张三', '李四', '王五', '赵六'], 1: {'name': '西施', 'age': 25, 'sex': '女'}, (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]}

2.将name_list对应的python全部变成大写
 

dic ={'name_list':['张三','python','王五'],1:{'name':'西施','age':25,'sex':'女'},(1,2):[100,{'ip':'192.168.1.1','port':3306}]}
dic['name_list'][1] = dic['name_list'][1].upper()
print(dic)#{'name_list': ['张三', 'PYTHON', '王五'], 1: {'name': '西施', 'age': 25, 'sex': '女'}, (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]}

3.将1对应的字典添加一个键值对:weight:75

dic ={'name_list':['张三','python','王五'],1:{'name':'西施','age':25,'sex':'女'},(1,2):[100,{'ip':'192.168.1.1','port':3306}]}
dic[1]['weight'] = 75
print(dic)#{'name_list': ['张三', 'python', '王五'], 1: {'name': '西施', 'age': 25, 'sex': '女', 'weight': 75}, (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]}

4.将1对应的字典name名称西施换成’王昭君‘

dic ={'name_list':['张三','python','王五'],1:{'name':'西施','age':25,'sex':'女'},(1,2):[100,{'ip':'192.168.1.1','port':3306}]}
dic[1]['name'] = '王昭君'
print(dic)#{'name_list': ['张三', 'python', '王五'], 1: {'name': '王昭君', 'age': 25, 'sex': '女'}, (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]}

5.将{'ip': '192.168.1.1', 'port': 3306}此字典的port键值对删除 

​​​​​​​dic ={'name_list':['张三','python','王五'],1:{'name':'西施','age':25,'sex':'女'},(1,2):[100,{'ip':'192.168.1.1','port':3306}]}
del dic[(1,2)][1]['port']
print(dic)#{'name_list': ['张三', 'python', '王五'], 1: {'name': '西施', 'age': 25, 'sex': '女'}, (1, 2): [100, {'ip': '192.168.1.1'}]}

列表的使用:

​​​​​​​1.将列表的每个元素用“_”拼接成一个字符串

#01 将列表的每个元素用“_”拼接成一个字符串
li = ["python","java","html","css"]
st = ''
count = 0
for i in li:
    count += 1
    if count< len(li):

        st = st + i+"_"
    else:
        st = st + i

print(st)#python_java_html_css

#第二种方法
count = 0
for i in li:
    count +=1
    if count < len(li):

        print(i+"_",end='')

    else:
        print(i)

#第三种方法
print('_'.join(li)) #python_java_html_css

2 利用for循环和range找出100以内所有偶数并将这些偶数插入到一个新的列表中

lis = []
for i in range(1,101):
    if i % 2 ==0:
        lis.append(i)
print(lis)

3.利用for循环和range从100~1

for i in range(100,0,-1):
    print(i)

4.利用for循环和range,将1-30的数字一次添加到列表中,并循环这个列表,将能被三整除的数改为"*"

li = []
for i in range(1,31):
    li.append(i)
    if i % 3 ==0:
        li[i-1] = '*' #为什么是i - 1 ,因为索引是从0开始的
print(li) #[1, 2, '*', 4, 5, '*', 7, 8, '*', 10, 11, '*', 13, 14, '*', 16, 17, '*', 19, 20, '*', 22, 23, '*', 25, 26, '*', 28, 29, '*']

# 方法二
li =[]
for i in range(1,31):
    li.append(i)
    if i % 3 ==0:
        li.remove(i) #先按索引位置删除
        li.insert(i,"*") #后插入,索引位置
print(li)#[1, 2, '*', 4, 5, '*', 7, 8, '*', 10, 11, '*', 13, 14, '*', 16, 17, '*', 19, 20, '*', 22, 23, '*', 25, 26, '*', 28, 29, '*']

5. 查找列表li中的元素,移除每个元素的空格,并找出以“A”或者“a”开头,并以“c“结尾的所有元素,并添加到一个新的列表中,最后循环打印这个新列表

li = ["TaiBai ","alexC","ABC ","egon","riTian","wusir","  aqc"]
newlist =[]
for i in li:
    i = i.strip()
    if i.upper().startswith('A') and i.endswith('c'):
        newlist.append(i)

print(newlist)

6.元素分类 

#有如下值 li = [11,22,33,44,55,66,77,88,99,90]
#将所有大于66的值保存至字典的第一个key中,将小于66保存到第二个key值中
li = [11,22,33,44,55,66,77,88,99,90]
dic = {}

for key in li:
    if key >66:
        if dic.get('k1'): #判断有没有k1
            dic['k1'].append(key) #如果有k1键,那么就把大于66的数添加进去成为值
        else:
            dic['k1'] = [key] #添加键值对.如果加双引号就代表字符串了,不是变量key
    if key <66:
        if dic.get('k2'): #判断有没有k1
            dic['k2'].append(key) #如果有k1键,那么就把大于66的数添加进去成为值
        else:
            dic['k2'] = [key] #添加键值对.如果加双引号就代表字符串了,不是变量key

print(dic)#{'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 99, 90]}

7.删除键含有k的键值对

dic = {"key1":"value1","key2":"value2","key3":"value3","name":"python"}
#在序号字段时,不能做删除,这个要注意,所以我们需要转换一下
#首先把含有k的键找出来,放到一个列表里面
li =[]
for i in dic:
    if "k" in i:
        li.append(i)
print(li) #['key1', 'key2', 'key3']
#然后根据键删除键值对,而键就从这个列表里面取
for key in li:
    dic.pop(key)
print(dic) #{'name': 'python'}

8.输入商品列表,用户输入序号,显示用户选种的商品

'''
1.页面显示
序号+商品名称+商品价格
1    电脑     1999
2    鼠标      99
............
2.用户输入选择的商品序号,然后打印商品名称及商品价格
3.如果用户输入的商品序号有误,则提示输入有误,并重新输入
    排除非字母的情况,isdigit() 本来我还准备就用1到4来判断
    超过数字范围
4.用户输入q或者Q,退出程序
5.我自己添加了一些功能
'''
goods = [{'name':"电脑","price":1999},
        {'name':"鼠标","price":99},
        {'name':"游艇","price":29},
        {'name':"美女","price":988}]
prt_count  = {}
prt = {}
count = 0
while 1:
    for i in goods:
        print("\t{}\t{}\t{}".format(goods.index(i)+1,i['name'],i['price']))

    choice_num = input("请输入>>>").strip()
    if choice_num.upper() =='Q':break
    if choice_num.isdigit():

        if 0<int(choice_num) <= goods.index(i)+1:

            print("你打印的商品名称是:",goods[int(choice_num)-1]["name"],"价格是:",goods[int(choice_num)-1]['price'])

            #增加一个商品打印单
            count += 1
            prt[goods[int(choice_num) - 1]["name"]] = goods[int(choice_num)-1]['price']
            prt_count[count] = prt #{count:{name:price}}


        else:

            print("你输入的商品序号没有,请重新输入")

    else:
        print("您输入的有非数字元素,请重新输入")
    prt = {} #清空字典,不然的话,就进行累加了。

print("你已退出")
print(prt_count)
  • 运行结果:

最后类型转换:

​​​​​​​# 字符串转换为列表 用分隔方法就可以了
st = "python java html"
li = st.split()
print(li) #['python', 'java', 'html']
#list 转换为字符串  此list中的元素全部是str类型
li = ['python', 'java', 'html']
s2 = ' '.join(li)
print(s2) #python java html
# 元组和列表转换
li = [1,2,3]
tul = tuple(li)
print(tul) #(1, 2, 3)
li = list(tul)
print(li) #[1, 2, 3]
# 字典与列表转换
dic = {'name':"python","age":18}
li = list(dic)
print(li) #['name', 'age']  直接就把字典的键全部拿出来了

以上都是看视频上,根据视频的一些内容,整理出来的笔记,题目都是自己做的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值