第二章练习题

1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']

1 li = ['alex','eric','rain']
2 a = '_'.join(li)
3 print(a)
View Code

2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
li=["alec","aric","Alex","Tony","rain"]
tu=("alec","aric","Alex","Tony","rain")
dic={'k1':"alex",'k2':'aric',"k3":"Alex","k4":"Tony"}

3、写代码,有如下列表,按照要求实现每一个功能

li=['alex','eric','rain']

a.计算列表长度并输出

1 print(len(li))
View Code

b.列表中追加元素“seven”,并输出添加后的列表

1 li.append('seven')
2 print(li)
View Code

c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表

li.insert(0,'Tony')
print(li)
View Code

d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表

li[1] = 'kelly'
print(li)
View Code

e.请删除列表中的元素“eric”,并输出修改后的列表

1  li.remove('eric')
2 print(li)
View Code

f.请删除列表中的第2个元素,并输出删除元素的值和删除元素后的列表

1 print(li.pop(1))
2 print(li)
View Code

g.请删除列表中的第3个元素,并输出删除元素后的列表

1 li.pop(2)
2 print(li)
View Code

h.请删除列表中的第2至4个元素,并输出删除元素后的列表

1 del li[1:4]
2 print(li)
View Code

i.请将列表所有的元素反转,并输出反转后的列表

li.reverse()
print(li)
View Code

j.请使用for、len、range输出列表的索引

1 for i in range(len(li)):
2      print(i)
View Code

k.请使用enumrate输出列表元素和序号(序号从100开始)

1 for index,i  in enumerate(li,100):
2      print(index,i)
View Code

l.请使用for循环输出列表的所有元素

for i in li :
    print(i)
View Code

4、写代码,有如下列表,请按照功能要求实现每一个功能

li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]

a.请根据索引输出“Kelly”

print(li[2][1][1])
View Code

b.请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...

1 li[2][2] = 'All'
2 print(li)
View Code

5、写代码,有如下元组,按照要求实现每一个功能

tu=('alex','eric','rain')

a.计算元组长度并输出

print(len(tu))
View Code

b.获取元组的第2个元素,并输出

print(tu[1])
View Code

c.获取元组的第1-­‐2个元素,并输出

print(tu[0:2])
View Code

d.请使用for输出元组的元素

for i in tu :
    print(i)
View Code

e.请使用for、len、range输出元组的索引

for i in range(len(tu)) :
    print(i)
View Code

g.请使用enumrate输出元祖元素和序号(序号从10开始)

for index,i in enumerate(tu,10) :
    print(index,i)
View Code

6、有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])

a.讲述元祖的特性

元祖与列表类似,不同的是元祖的元素不能修改。是有序的,不可改变的,元祖的值是可以被hash的

b.请问tu变量中的第一个元素“alex”是否可被修改?

不可以。

c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

k2对应的值是列表,可以修改。

tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
tu[1][2]['k2'].append('seven')
print(tu)
View Code

d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”

k3对应的值是元祖,不可以修改。

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

a.请循环输出所有的key

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
for i in dic :
    print(i)
View Code

b.请循环输出所有的value

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
for i in dic :
    print(dic[i])
View Code

c.请循环输出所有的key和value

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
for i in dic:
    print(i,dic[i])
View Code

d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
dic['k4'] = 'v4'
print(dic)
View Code

e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
dic['k1'] = 'alex'
print(dic)
View Code

f.请在k3对应的值中追加一个元素44,输出修改后的字典

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
dic['k3'].append('44')
print(dic)
View Code

g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
dic['k3'].insert(0,18)
print(dic)
View Code

8、转换

a.将字符串s="alex"转换成列表

s = 'alex'
a = list(s)
print(a)

b.将字符串s="alex"转换成元祖

s = "alex"
n1 = tuple(s)
print(n1)
View Code

c.将列表li=["alex","seven"]转换成元组

li = ["alex","seven"]
n1 = tuple(li)
print(n1)
View Code

d.将元祖tu=('Alex',"seven")转换成列表

tu = ('Alex',"seven")
n1 = list(tu)
print(n1)
View Code

e.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增

1 li = ["alex","seven"]
2 n1 = {}
3 for k,v in enumerate(li,10):
4 n1[k] = v
5 print(n1)
View Code

9、元素分类

有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
即:{'k1':大于66的所有值,'k2':小于66的所有值}

1 lis = [11,22,33,44,55,66,77,88,99,90]
2 lis.sort()
3 dic = {'k1':[],'k2':[]}
4 for i in  lis :
5     if i > 66 :
6         dic['k1'].append(i)
7     if i <  66 :
8         dic['k2'].append(i)
9 print(dic)
View Code

10、输出商品列表,用户输入序号,显示用户选中的商品

商品li=["手机","电脑",'鼠标垫','游艇']

a.允许用户添加商品

b.用户输入序号显示内容

 1 li = ['手机', '电脑', '鼠标垫', '游艇']
 2 
 3 exi = True
 4 while exi :
 5 
 6     print('--------商品列表---------')
 7 
 8     for index,i in enumerate(li,1) :
 9         print(index,i)
10     choice = input('是否添加商品?')
11 
12     if choice == 'y' or choice == 'Y' or choice == 'yes' :#判断用户是否添加商品
13         choice1 = input('请输入添加商品:')
14         li.append(choice1)#将用户输入的商品添加到商品列表中
15         print(li)
16 
17     elif choice == 'n' or choice == 'N' or choice == 'no' :
18         choice2 = input('是否查询商品')
19         if choice2 == 'y' or choice2 == 'Y' or choice2 == 'yes' :#判断用户是否查询商品
20             while True :
21                 choice3 = input('请输入商品编号:')
22                 if choice3.isdigit() :#如果用户输入的是编号
23                     choice3 = int(choice3)#输入的变成数字
24 
25                     if choice3 > 0 and choice3 <= len(li) :#判断输入的是否在商品编号范围内
26                         print(li[choice3-1])#列表是从1开始,所以需要减去1
27 
28                     elif choice3 > len(li) or choice3 <= 0 :#输入的数字不在商品编号范围内
29                         print('输入错误,请重新输入')
30 
31                 elif choice3 == 'q' :#用户退出查询商品
32                     break
33 
34                 else:
35                     print('输入错误,请重新输入:')
36 
37     elif choice == 'q' :
38         exi = False
39 
40     else:
41         print('输入错误,请重新输入')
View Code

作业:三级菜单

 1 menu = {
 2     '北京':{
 3         '海淀':{
 4             '五道口':{
 5                 'soho':{},
 6                 '网易':{},
 7                 'Google':{}
 8             },
 9             '中关村':{
10                 '爱奇艺':{},
11                 '汽车之家':{},
12                 'youku':{},
13             },
14             '上地':{
15                 '百度':{},
16             }
17         },
18         '昌平':{
19             '沙河':{
20                 '老男孩':{},
21                 '北航':{}
22             },
23             '天通苑':{},
24             '回龙观':{}
25         },
26         '朝阳':{},
27         '东城':{}
28     },
29     '上海':{'闵行':{'人民广场':{'炸鸡店':{}}},'闸北':{'火车站':{'携程':{}}},'浦东':{},},
30     '山东':{},
31 }
32 first_layer = menu
33 layer = []
34 exi = True
35 while exi :
36     for i in first_layer :
37         print(i)
38     choice = input('>>>').strip()
39     if not choice :
40         continue
41     elif choice in first_layer :
42         layer.append(first_layer)
43         first_layer = first_layer[choice]
44     elif choice == 'b' :
45         if len(layer) > 0 :
46             first_layer = layer.pop()
47         else:
48             print('已经是顶层')
49     elif choice == 'q' :
50         exi = False
51     else:
52         print('输入错误,请重新输入')
View Code
原文地址:https://www.cnblogs.com/aaaajayheng1990/p/8673262.html