1、有列表['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量
1 #方法一
2 list=['alex',49,[1900,3,18]]
3 print("名字:",list[0],'年龄:',list[1],'出生:','年:',list[2][0],'月:',list[2][1],'日:',list[2][2])
4
5 # 方法二
6 data=['alex',49,[1900,3,18]]
7 name=data[0]
8 age=data[1]
9 y,m,d=data[2]
10 print("姓名:{},年龄:{},出生年月日:{}.{}.{}".format(name,age,y,m,d))
list1 = ['alex', 49, [1900, 3, 18]]
name, age, birth = list1
year, month, day = birth
print(name, age, birth)
print(year, month, day)
2、用列表的insert与pop方法模拟队列
1 # 队列:FIFO,先进先出 后进后出
2 l=[]
3 # 入队操作
4 l=[]
5 # 入栈操作
6 l.insert(0,'first')
7 l.insert(0,'second')
8 l.insert(0,'third')
9 #
10 print(l)
11 # 出队操作
12 print(l.pop())
13 print(l.pop())
14 print(l.pop())
list1 = []
# 根据列表的索引位置插入数据
# 数据开始进入队列中
list1.insert(0, '我是第一个坦克')
list1.insert(1, '我是第二个坦克')
list1.insert(2, '我是第三个坦克')
print(list1)
# 数据开始出队列
list1.pop(0)
print(list1)
list1.pop(0)
print(list1)
list1.pop(0)
print(list1)
3. 用列表的insert与pop方法模拟堆栈
1 # 堆栈:LIFO,后进先出 先进后出
2 l=[]
3 # 入队操作
4 l.insert(0,'first')
5 l.insert(0,'second')
6 l.insert(0,'third')
7
8 print(l)
9 # # 出队操作
10 print(l.pop(0))
11 print(l.pop(0))
12 print(l.pop(0))
# 堆栈: 先进后出
list1 = []
# 根据列表的索引位置插入数据
# 数据开始进入队列中
list1.insert(0, '我是第一个坦克')
list1.insert(1, '我是第二个坦克')
list1.insert(2, '我是第三个坦克')
print(list1)
list1.pop() # 默认取出列表中最后一个数据
print(list1)
list1.pop() # 默认取出列表中最后一个数据
print(list1)
list1.pop() # 默认取出列表中最后一个数据
print(list1)
4、简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数以三元组形式加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
'''
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
'''
1 msg_dic = {
2 'apple': 10,
3 'tesla': 100000,
4 'mac': 3000,
5 'lenovo': 30000,
6 'chicken': 10,
7 }
8 while True:
9 for k,v in msg_dic.items():
10 print('商品:%s 价格 %s' % (k,v))
11 shop_name = input('请输入商品名:')
12 if shop_name.isspace() or shop_name not in msg_dic:
13 print('请正确输入商品名称')
14 else:
15 while True:
16 shop_number = input('请输入购买商品个数')
17 if shop_number.isdigit():
18 shop_number = int(shop_number)
19 # 商品价格
20 shop_price = msg_dic[shop_name] * shop_number
21 # 购物清单
22 shopping_list = (shop_name, shop_price, shop_number)
23 print('购物列表'.center(30, '*'), '
', shopping_list)
24 break
25 else:
26 print('请输入正确的购买个数')
27 break

msg_dic = {
'apple': 10,
'tesla': 100000,
'mac': 3000,
'lenovo': 30000,
'chicken': 10,
}
while True:
# 实现无限循环打印商品信息,让用户选择商品
for key, value in msg_dic.items():
# 格式化输出方式一:
# print('商品名称:[%s] 单位: [%s]元' % (key, value))
# 格式化输出方式二:
# print('商品名称:[{}] 单位: [{}]元'.format(key, value))
# 格式化输出方式三: f'{key}{value}' ---> 等同于 '{}{}'.format(key, value)
# 该语法是python3.5以后才出来
print(f'商品名称:[{key}] 单位: [{value}]元')
# 让用户输入商品名称
shop_name = input('请输入需要购买的商品名称: ').strip()
# 校验用户输入的商品是否存在
if shop_name not in msg_dic:
print('当前商品不存在')
continue
# 让用户输入购买的商品个数
count = input('请输入购买的商品个数:').strip()
if count.isdigit():
count = int(count)
shop_price = msg_dic.get(shop_name)
cost = shop_price * count
# 将商品的名称、单价、个数、总价 存放在一个元组中
shop_tuple = (shop_name, shop_price, count, cost)
print(shop_tuple)
# 让用户选择是否继续购买
break
else:
print('个数必须是数字类型!')
完整版
5、有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
1 l = [11,22,33,44,55,66,77,88,99,90]
2 dic = {'k1':[], 'k2':[]}
3 for i in l:
4 if i > 66:
5 dic['k1'].append(i)
6 elif i < 66:
7 dic['k2'].append(i)
8 print(dic)
9 # 6、统计s='hello alex alex say hello sb sb'中每个单词的个数
10 s='hello alex alex say hello sb sb'
11 dic = {}
12 l = s.split()
13 for i in l:
14 if i in dic:
15 dic[i] += 1
16 else:
17 dic[i] = 1
18 print(dic)

list1 = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dict1 = {'k1': [], 'k2': []}
# 循环遍历获取list1中的每一个值,然后一一比较
for line in list1:
if line > 66:
dict1['k1'].append(line)
elif line < 66:
dict1['k2'].append(line)
print(dict1)
优质版
6、统计s='hello alex alex say hello sb sb'中每个单词的个数
1 s='hello alex alex say hello sb sb'
2 dic = {}
3 l = s.split()
4 for i in l:
5 if i in dic:
6 dic[i] += 1
7 else:
8 dic[i] = 1
9 print(dic)

s = 'hello alex alex say hello sb sb'
new_list = s.split(' ')
print(new_list)
dic = {}
for line in new_list:
# 如果当前的line不存在dic字典中,代表该单词是第一个出现,也就是个数为1
if line not in dic:
# 若单词出现第一次,则将该单词当做字典的key,1作为字典的value
# 初始化单词的个数
dic[line] = 1
else:
# 若是重复出现的单词,则个数 += 1
dic[line] += 1
print(dic)
优质版