python基础_字典_列表_元组考试

1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,

li = ['alex', 'eric', 'rain']
v = '_'.join(li)
print(v)

  输出结果为

alex_eric_rain

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"}

(解决思路,现将元组和字典全部转换为列表)

li = ["alec", "aric", "Alex", "Tony", "rain"]
tu = ("alec", "aric", "Alex", "Tony",  "rain")
dic = {'k1': " alex", 'k2': 'aric', "k3": "Alex", "k4": "Tony"}

l1 = list(tu)
l2 = list(dic.values())
l3 = li + l1 + l2
for i in l3:
    res = i.strip()  #移除字符串首尾的空格
    if (res.startswith('a') or res.startswith('A') and res.endswith('c')):
        print(res)

  执行结果

alec
aric
alec
aric
alex
aric

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

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

  a.计算列表长度并输出

li = ['alex','eric','rain']
v = len(li)
print(v)

  执行结果

3

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

 

li = ['alex','eric','rain']
li.append('seven')
print(li)

  执行结果

['alex', 'eric', 'rain', 'seven']

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

li = ['alex','eric','rain']
li.insert(1, 'Tony')
print(li)

  执行结果

['alex', 'Tony', 'eric', 'rain']

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

#切片方式:
li = ['alex','eric','rain']
li[1:2] = ['Kitty']
print(li)

#索引方式

li = ['alex','eric','rain']
li[1] = 'Kitty'
print(li)

  执行结果

['alex', 'Kitty', 'rain']

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

li = ['alex','eric','rain']
li.remove('eric')
print(li)

  执行结果

['alex', 'rain']

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

li = ['alex','eric','rain']
li.pop(2)
print(li)

  执行结果

['alex', 'eric']

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

li = ['alex','eric','rain','Christian']
del li[1:4]
print(li)

 执行结果

['alex']

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

li = ['alex','eric','rain','Christian']
li.reverse()
print(li)

  执行结果

['Christian', 'rain', 'eric', 'alex']

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

li = ['alex','eric','rain','Christian']
for i in range(len(li)):
    print(i)

  执行结果

0
1
2
3

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

li = ['alex','eric','rain','Christian']
for i, k in enumerate(li,100):
    print(i, k)

  执行结果

100 alex
101 eric
102 rain
103 Christian

  

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

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

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

li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]
v = li[2][1][1]
print(v)

  执行结果

kelly

b.请使用索引找到'all'元素并将其修改为“ALL”

li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]
li[2][2] = 'ALL'
print(li)

  努力哥版本

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
index = li[2].index("all")
li[2][index] = "ALL"
print(li)

  执行结果

['hello', 'seven', ['mon', ['h', 'kelly'], 'ALL'], 123, 446]

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

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

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

tu = ('alex', 'eric', 'rain')
print(tu[0:2])

  执行结果

('alex', 'eric')

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

tu = ('alex', 'eric', 'rain')
for i in range(len(tu)):
    print(i)

  输出结果

0
1
2

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

a.讲述元祖的特性
答:元组具有列表的全部特性,不同的是,元组的元素不能修改

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

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

答:列表,可以被修改

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

  执行结果

('alex', [11, 22, {'k1': 'v1', 'k2': ['age', 'name', 'seven'], 'k3': (11, 22, 33)}, 44])

  

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

答: 元组,不能

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

  执行结果

Traceback (most recent call last):
  File "E:/PycharmProjects/递归/练习.py", line 74, in 
    tu[1][2]['k3'].append('seven')
AttributeError: 'tuple' object has no attribute 'append'

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。keys():
    print(i)

  执行结果

k1
k2
k3 

b.请循环输出所有的value

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

  执行结果

v1
v2
[11, 22, 33]

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

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

  执行结果

('k1', 'v1')
('k2', 'v2')
('k3', [11, 22, 33])

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

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

 执行结果

{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

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

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

  执行结果

{'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33]}

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

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

  执行结果

{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33, 44]}

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

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

 执行结果 

{'k1': 'v1', 'k2': 'v2', 'k3': [18, 11, 22, 33]}

8.转换

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

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

  执行结果

['a', 'l', 'e', 'x']
('a', 'l', 'e', 'x')

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

li=["alex","seven"]
d={}
for i ,k in enumerate(li,10):
    d[i] = k
print(d)

  执行结果

{10: 'alex', 11: 'seven'}

9.元素分类

有如下值集合[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]
li.sort()
i = li.index(66)
l = len(li)
dic= {'k1':li[i :l],'k2':li[0:i]}
print(dic)

  执行结果

{'k1': [66, 77, 88, 90, 99], 'k2': [11, 22, 33, 44, 55]}

  方法二:

li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
li.sort()
l1 = []
l2 = []
for i in li:
    if i >= 66:
        l1.append(i)
    else:
        l2.append(i)
dic = {'k1':l1, 'k2':l2}
print(dic)

  执行结果

{'k1': [66, 77, 88, 90, 99], 'k2': [11, 22, 33, 44, 55]}

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

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

   a.允许用户添加商品

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

 

print('商品列表,用户输入序号,显示用户选中的商品')
li=["手机","电脑",'鼠标垫','游艇']
for i, v in enumerate(li,1):
    print(i,v)
s = input('是否添加商品?')
if s == 'y' or s == 'Y' or s == 'YES' or s == 'yes':
    z = input("请输入需要添加的商品 ")
    li.append(z)
    for i, v in enumerate(li, 1):
        print(i, v)
x = input('是否查找商品? ')
if x == 'y'or x == 'Y' or x=='YES' or x == 'yes':
    y = int(input('请输入查找的序号:'))
    print(li[y-1])   # -1 是取下标,默认是从0开始的,-1就是从1开始

  执行结果

商品列表,用户输入序号,显示用户选中的商品
1 手机
2 电脑
3 鼠标垫
4 游艇
是否添加商品?y
请输入需要添加的商品 游戏机
1 手机
2 电脑
3 鼠标垫
4 游艇
5 游戏机
是否查找商品? y
请输入查找的序号:5
游戏机

11.利用for循环和range输出 

a.For循环从大到小输出1-­100

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

b.For循环从小到到输出100-­1

for i in range(0,101):
    print(i)

c.While循环从大到小输出1-­100

while 1:
    a = 100
    for i in range(100):
        print(a-i)
    break

d.While循环从小到到输出100-­1 

while 1:
    for i in range(100):
        print(i+1)
    break

12.利用for循环和range输出9*9乘法表

for i in range(1,10):
     for j in range(1,i+1):
         print(j,"x",i,"=",i*j,"\t",end="")   #因为print自动换行,end="" 为结尾不换行
         if i==j:
            print("")  #此处是结尾换行
            break

 

for i in range(1,10):
     for j in range(1,i+1):
         print('{0}*{1}={2}'.format(j,i,i*j),"\t",end="")   #因为print自动换行,end="" 为结尾不换行
         if i==j:
            print("")  #此处是结尾换行
            break13.分页显示内容

13.分页显示内容

a.通过for循环创建301条数据,数据类型不限,如:
alex-1 [email protected] pwd1
alex-2 [email protected] pwd2
alex-3 [email protected] pwd3
……
b.提示用户,请输入查看的页码,当用书输入指定页码,则显示指定页
注意:每页显示10条数据

user_list = []
for i in range(1,302):
    temp = {'name': 'alex '+ str(i),'email':'alex'+ str(i) + '@qq.com','pwd' : 'pwd '+ str(i)}
    user_list.append(temp)

while 1:
    #每页显示十行数据
    s = input('请输出页码:')

    v=s.isnumeric()
    if v== False:
        print("请重新输入")
    elif int(s)<1 or int(s)>31:
        print("输入页码错误")
    else:
    #user_list[0,10]  1
    #user_list[11,20]  2
    #user_list[21,30]  3
        s=int(s)
        start = (s - 1) * 10
        end = s * 10
        result = user_list[start:end]
        for item in result:
            print(item)

 14.有一列表,nums=[2,7,11,15,1,8,7]

      请找到列表中任意两个元素相加能等于9的元素集合。 

nums = [2,7,11,15,1,8,7]
l1 = []
for i in nums:
    for j in nums:
        if i + j == 9:
            l1.append((i,j))
print(l1)

 执行结果

[(2, 7), (2, 7), (7, 2), (1, 8), (8, 1), (7, 2)]

 15. 公鸡五块一只,母鸡三块一只,小鸡三只一块,用100块钱买100只鸡,其中公鸡,母鸡,小鸡必须有,

            问公鸡,母鸡,小鸡要买多少只刚好凑足100块?

for i in range (1,100//5):
    for j in range (1,100//3):
        for x in range (1,100):
            if i + j + x  == 100  and  5*i + 3*j + x/3 ==100:
                print(i,j,x)

  执行结果

4 18 78
8 11 81
12 4 84

 16.有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的两位数? 

count = 0
for i in range(1, 9):
    for x in range(1, 9):
        if i != x:
            print(i, x,)
            count += 1
print(count)

  执行结果

1 2
1 3
1 4
1 5
1 6
1 7
1 8
2 1
2 3
2 4
2 5
2 6
2 7
2 8
3 1
3 2
3 4
3 5
3 6
3 7
3 8
4 1
4 2
4 3
4 5
4 6
4 7
4 8
5 1
5 2
5 3
5 4
5 6
5 7
5 8
6 1
6 2
6 3
6 4
6 5
6 7
6 8
7 1
7 2
7 3
7 4
7 5
7 6
7 8
8 1
8 2
8 3
8 4
8 5
8 6
8 7
56

  

li = []
for i in range(1, 9):
    for x in range(1, 9):
        a = ("{0}{1}".format(i, x,))    #把两个数组合在一起
        if a not in li:                #判断a是不是在li[]里面
            if i != x:                  #相等就往上,再循环
                li.append(a)
print(li)
print(len(li))

  

17.购物车

功能要求:要求用户输入总资产,例如:2000

显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods=[

{"name":"电脑","price":1999},

{"name":"鼠标","price":10},

{"name":"游艇","price":20},

{"name":"美女","price":998},
           ]

  

 

  

转载于:https://www.cnblogs.com/huiyichanmian/p/8758198.html

你可能感兴趣的:(python基础_字典_列表_元组考试)