"""
练习:二维列表
--将元素能被3整除的修改为0
--以表格状打印
"""
list01 =[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],]# for r in range(3):# for c in range(5):# if list01[r][c] % 3 == 0:# list01[r][c] = 0# print()# 修改for r inrange(len(list01)):# 0 1 2for c inrange(len(list01[r])):if list01[r][c]%3==0:
list01[r][c]=0print()# 读取for row in list01:for item in row:print(item, end="\t")# 在一行输出print()# 换行
"""
练习:
--打印于谦的所有爱好(一行一个)
--打印所有人(一行一个)
--打印所有爱好(一行一个)
"""
dict_hobbies ={"于谦":["抽烟","喝酒","烫头"],"郭德纲":["说","学","逗","唱"],}for item in dict_hobbies["于谦"]:print(item)for key in dict_hobbies:print(key)for value in dict_hobbies.values():for item in value:print(item)# ----------------------------------------# dict_hobbies["于谦"].remove("抽烟")# del dict_hobbies["于谦"][0]# 添加新数据
dict_hobbies["大爷"]= dict_hobbies["于谦"]# 删除旧数据del dict_hobbies["于谦"]print(dict_hobbies)
三、字典列表嵌套
dict_travel_info ={"北京":{"景区":["长城","故宫"],"美食":["烤鸭","豆汁焦圈","炸酱面"]},"四川":{"景区":["九寨沟","峨眉山"],"美食":["火锅","兔头"]}}# --打印北京的第一个景区print(dict_travel_info["北京"]["景区"][0])# --打印所有城市 (一行一个)for key in dict_travel_info:print(key)# --打印所有城市的所有美食(一行一个)for value in dict_travel_info.values():for item in value["美食"]:print(item)
"""
彩票:双色球
红色:6个 1--33之间的整数 不能重复
蓝色:1个 1--16之间的整数
1) 随机产生一注彩票(列表(前六个是红色,最后一个蓝色))
2) 在终端中录入一支彩票
要求:满足彩票的规则.
"""import random
# 1) 随机产生一注彩票(列表(前六个是红色,最后一个蓝色))
list_ticket =[]# 前六个红球whilelen(list_ticket)<6:
number = random.randint(1,33)# for number in list_ticket:if number notin list_ticket:
list_ticket.append(number)# 第七个蓝球
list_ticket.append(random.randint(1,16))print(list_ticket)# 2) 在终端中录入一支彩票
list_ticket =[]whilelen(list_ticket)<6:# number = int(input("请输入第%d个红球号码:" % (len(list_ticket) + 1)))
number =int(input(f"请输入第{len(list_ticket)+1}个红球号码:"))if number in list_ticket:print("号码已经存在")elif number <1or number >33:print("号码不在范围内")else:
list_ticket.append(number)whilelen(list_ticket)<7:
number =int(input("请输入蓝球号码:"))if number <1or number >16:print("号码不在范围内")else:
list_ticket.append(number)print(list_ticket)
八、自定义排序算法
"""
计算最值
max_value = list02[0]
for i in range(1, len(list02)):
if max_value < list02[i]:
max_value = list02[i]
自定义排序算法
升序:从小到大
降序:从大到小
"""
list02 =[9,3,4,6,7,4,6,8,15]# 1. 让第一个元素是最大值"""
for i in range(1, len(list02)):
if list02[0] < list02[i]:
# 因为替换,所以丢失了旧数据
list02[0] = list02[i]
print(list02)
"""# --用第一个数,与后面进行比较,发现更大则交换"""
for i in range(1, len(list02)):
if list02[0] < list02[i]:
# 因为交换,所以新旧数据都在
list02[0], list02[i] = list02[i], list02[0]
print(list02)
# 2. 让第二个元素是最大值
for i in range(2, len(list02)):
if list02[1] < list02[i]:
# 因为交换,所以新旧数据都在
list02[1], list02[i] = list02[i], list02[1]
print(list02)
# 3. 让第三个元素是最大值
for i in range(3, len(list02)):
if list02[2] < list02[i]:
# 因为交换,所以新旧数据都在
list02[2], list02[i] = list02[i], list02[2]
print(list02)
"""
list02 =[9,3,4,6,7,4,6,8,15]# (1)取(前面)数据for r inrange(len(list02)-1):# 0 1# (2)(与后面)作比较for c inrange(r +1,len(list02)):# 1234 234# (3)找更大if list02[r]< list02[c]:# (4)则交换
list02[r], list02[c]= list02[c], list02[r]print(list02)
"""
自定义排序算法
升序:从小到大
"""
list02 =[9,3,4,6,7,4,6,8,15]for r inrange(len(list02)-1):for c inrange(r +1,len(list02)):if list02[r]> list02[c]:
list02[r], list02[c]= list02[c], list02[r]print(list02)
"""
--查找现有人数最大的地区信息(结果为字典)
--根据现有人数对疫情信息降序(大->小)排列
"""
list_epidemic =[{"region":"台湾","new":16,"now":2339,"total":16931,},{"region":"陕西","new":182,"now":859,"total":1573,},{"region":"浙江","new":2,"now":505,"total":2008,},]
max_value = list_epidemic[0]for i inrange(1,len(list_epidemic)):if max_value["now"]< list_epidemic[i]["now"]:
max_value = list_epidemic[i]print(max_value)for r inrange(len(list_epidemic)-1):for c inrange(r +1,len(list_epidemic)):if list_epidemic[r]["now"]< list_epidemic[c]["now"]:
list_epidemic[r], list_epidemic[c]= list_epidemic[c], list_epidemic[r]print(list_epidemic)