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},
]