1、有列表['alex',49,[1900,3,18]],分别取出其中的年月日
通过解压赋值来取值 #!/usr/bin/env python #-*- coding:utf-8 -*- def main(): info_list = ['alex',49,[1900,3,18]] name,age,birth_list = info_list birth_year,birth_mon,birth_day = birth_list print('姓名:{0} 年龄:{1} 出生年份:{2} 出生月份:{3} 出生day:{4}'.format( name,age,birth_year,birth_mon,birth_day)) if __name__ == '__main__': main()
2、用列表的insert和pop方法模拟队列
队列的原理:先进先出,类似于火车过山洞 >>> list_1 = [] >>> list_1.insert(0,'egon') >>> list_1.insert(1,'male') >>> list_1.insert(2,18) >>> print(list_1) ['egon', 'male', 18] >>> >>> list_1.pop(0) 'egon' >>> list_1.pop(0) 'male' >>> list_1.pop(0) 18 >>> print(list_1) [] >>>
3、使用insert和pop模拟堆栈
堆栈:先进后出,类似于在图书馆取书,最先拿的书总是在下面 >>> list_1 = [] >>> list_1.insert(0,'tank') >>> list_1.insert(1,'male') >>> list_1.insert(2,19) >>> print(list_1) ['tank', 'male', 19] >>> >>> list_1.pop(-1) 19 >>> list_1.pop(-1) 'male' >>> list_1.pop(-1) 'tank' >>> print(list_1) [] >>>
4、简单购物车,要求实现以下要求
目标要求: 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数以三元组形式加入购物列表,如果输入为空或其他非法输入则要求用户重新输入 msg_dic={ 'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10, }
代码如下:

#!/usr/bin/env python #-*- coding:utf-8 -*- from prettytable import PrettyTable msg_dic = {'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10} def main(): goods_info = [] total = 0 while 1: tb = PrettyTable() tb.field_names = ['商品名称','商品价格'] tb.align['商品名称'] = 'l' # 以“商品名称”字段左对齐 tb.align['商品价格'] = 'c' # 以“商品价格字段”居中对齐 for k,v in msg_dic.items(): tb.add_row([k,v]) print(tb.get_string(sortby='商品价格',reversesort=True)) #对商品列表进行排序 goods_choice = input('请输入你要购买的商品:').strip() if goods_choice in msg_dic.keys(): num_choice = int(input('请输入购买{}的数量:'.format(goods_choice))) goods_info.append([goods_choice,msg_dic.get(goods_choice),num_choice]) _continue = input('购买成功,是否继续添加商品(y,n):').strip().lower() if _continue == 'y': continue else: print('用户选择n或者输入其他非法字符,退出!') break else: print('输入为空或者其他非法字符,请重新输入!') #输出购物车信息 tb_shop = PrettyTable() tb_shop.field_names = ['商品名称','商品单价','商品数量','金额小计'] tb_shop.align['商品名称'] = 'l' tb_shop.align['商品单价'] = 'c' tb_shop.align['商品数量'] = 'c' tb_shop.align['金额小计'] = 'c' for item in goods_info: name_of_goods,price_of_goods,num_of_goods = item sum_of_money = price_of_goods * num_of_goods total += sum_of_money tb_shop.add_row([name_of_goods,price_of_goods,num_of_goods,sum_of_money]) print(tb_shop.get_string(sortby='金额小计',reversesort=True)) print('您一共消费{}元,欢迎下次光临!'.format(total)) if __name__ == '__main__': main()
5、有如下集合[11,22,33,44,55,66,77,88,99,90...],将所有值大于66的值存放于字典的第一个key中,所有小于66的放在字典的第二个key中
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): list_1 = [11,22,33,44,55,66,77,88,99,90] d = {} d['k1'] = [i for i in list_1 if i > 66] d['k2'] = [j for j in list_1 if j < 66] print(d) if __name__ == '__main__': main()
6、统计字符串 s='hello alex alex say hello sb sb'中每个单词的个数
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): s = 'hello alex alex say hello sb sb' list_s = s.split(' ') dict_word = {} for i in range(len(list_s)): dict_word.setdefault(list_s[i],list_s.count(list_s[i])) for k,v in dict_word.items(): print('单词{0}的个数为{1}'.format(k,v)) if __name__ == '__main__': main()
方法二如下:(通过set)
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): s = 'hello alex alex say hello sb sb' list_s = s.split(' ') set_word = set(list_s) for item in set_word: print('单词{0}的个数为{1}'.format(item,list_s.count(item))) if __name__ == '__main__': main()