程序1:手机销售(可以使用字典完成)
程序2:找出生成的100个随机数中出现次数最多的数。
程序3:json格式化代码(使用在线格式化),获取网站中的数据
在线格式化网址:
1、字典dict:
字典是一个容器类,可以用来存储数据。
字典存储数据:key:value(键值对),字典中存储的数据是没有顺序的
key 必须是不可变的,常量都可以作为key,一般使用字符串作为字典中的key,也可以使用数字等不可变类型的值。 key 是唯一的,如果有多个相同key的情况,保留最后一个key对应的值
#
列表
存储数据特点:1.有序的 2.每一个数据都有一个索引,通过索引可以对数据进行查询、修改、删除。
例如:dict_1 = {
'name'
:
'zhangsan'
,
'age'
:
22
,
'phone'
:
110
,
'sex'
:
'男'
,
'name'
:
'wnagwu'
}
print
(dict_1) #输出是无序的
输出:{'age': 22, 'name': 'zhangsan', 'sex': '男', 'phone': 110}
1.1 从字典中取值:
法1:在字典中根据key取值。(中括号)
name = dict_1['sss']
print(name)
法2:get(key, defalut)函数,获取字典中对应key的值 , 如果key不存在,取默认值,如果key存在,取出对应的结果。避免因为键报错。
例如: name = dict_1.get('name','0')
print(name)
1.2 向字典中添加或修改数据
:
如果这个key不存在,添加数据,如果key存在,修改这个key对应的值。
例如:
dict_1[
'name'
] =
'lisi'
dict_1[
'ssss'
] =
'4s'
1.3 删除字典中的数据:
法1:根据key删除字典中的数据:例如:
del
dict_1[
'ssss'
]
法2:
pop(key) key必要参数,要移出的数据对应的key。
例如:
s = dict_1.pop(
'name'
)
print(s)
法3:
popitem() 随机从字典中取出一个键值对,并且将键值放在元组中
例如:s = dict_1.popitem()
print
(s)
法4:删除字典中所有的键值对:
例如:dict_1.clear()
print(dict_1)
1.4
keys()函数
获取字典中所有的键,放在一个列表内:
# 获取字典中所有的key
keys = dict_1.keys() #print(keys) 输出:dict_keys(['name', 'sex', 'phone', 'age'])
# 取出所有的keys
for key in keys:
# 根据key取出对应的值
value = dict_1[key]
print('%s:%s'%(key,value))
输出:age:22
sex:男
name:zhangsan
phone:110
1.5
values()函数
获取字典中所有的value,返回的是一个列表:
# 获取字典中所有的value
values = dict_1.values()
#print(values) 输出:dict_values(['zhangsan', 22, '男', 110])
# for循环取出所有的value
for value in values:
print(value)
输出:110
22
zhangsan
男
1.6
items()函数
获取字典中所有的键值对,返回的是一个个小元组,放在一个大列表内:
items = dict_1.items()
# [('phone', 110), ('sex', '男')]
#print(items)
输出:dict_items([('phone', 110), ('age', 22), ('sex', '男'), ('name','zhangsan')])
# for 循环遍历items
for item in items:
# 从元组中 根据索引取出数据
key = item[0]
value = item[1]
print('键:%s 值:%s'%(key, value))
输出:
键:phone 值:110
键:age 值:22
键:sex 值:男
键:name 值:zhangsan
1.7 判断字典中是否拥有某个key 。或者可以使用
has_key(
)
函数
if 'phone' in dict_1.keys():
print('有这个key')
else:
print('没有这个key')
2、
random()函数
的列表生成式:
(具体参考CSDN博客)
numbers = [random.randint(0, 100) for x in range(100)]
#[最终放在列表中的数据 for循环] for中只有一个参数,默认开头序号是0
#number2 = [x*x for x in range(100)]
3、在python中发送请求:(
json
)
# 下载requests包,使用requests发请求
# windows+r 输入cmd 回车打开命令行工具 输入pip install requests
# 输入pip list 查看已经安装过的包
import
requests
# python内置的包,json
import json
#发送一个get请求,获取url地址下的资源内容
#
get(url)
需要将url地址作为参数进行传递
#
response
接受服务器返回的响应数据
response =
requests.get(url)
# 把
json字符串
转换
python中的字典或列表
weather_dict =
json.loads(response.content)
# 根据key取出字典中对应的值
date = weather_dict.get('date')
# 取出results列表
results = weather_dict['results']
4、去除列表中的重复元素:
法1:顺序可能发生改变:
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print (l2) 输出:['a', 'c', 'd', 'b']
法2:输出列表内元素顺序不变:
用list类的sort方法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print (l2) 输出:['b', 'c', 'd', 'a']
也可以这样写:
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print (l2)
附:生成一个列表,存放100个随机整数,找出出现次数最多的数字(可能不止一个)
#字典方式
import random
# 列表推导式/生成式
numbers = [random.randint(0, 100) for x in range(100)]
# [最终放在列表中的数据 for循环]
# number2 = [x*x for x in range(100)]
result_dict = {}
for num in numbers:
# 获取数字在列表中出现的次数
count = numbers.count(num)
# 把数字作为key,出现次数作为值value
result_dict[num] = count
# 找出字典中最大的值,这个值就是出现的最高次数
# result_dict.values()返回一个列表
h_count = max(result_dict.values())
# 通过次数,找到次数对应的值
for item in result_dict.items():
# item键值对的小元组
value = item[1]
if value == h_count:
key = item[0]
print('出现次数最多的数字为:%s ,次数为:%s'%(key, value))
#列表方式
import random
num_list=[]
total_list=[]
count_list=[]
num=[]
i=0
#生成100个0-100的随机数
while i<=100:
a=random.randint(0,100)
num_list.append(a)
i+=1
#将产生的数字和出现的次数放在一个列表中
for x in num_list:
count=num_list.count(x)
xu_num_list = [x,count]
count_list.append(count)
#如果需要遍历小列表,必须将小列表放在大列表中
#把生成的小列表放在一个大列表中
total_list.append(xu_num_list)
#找出最高次数
for x in range(0,len(total_list)):
xu_num_list=total_list[x]
hig=max(count_list)
if xu_num_list[1]==hig:
num.append(xu_num_list[0])
#去除列表中重复的出现的元素
num2=list(set(num))
#出现问题,同一个数字多次显示,显示列表中的数据时,不带有列表的符号
#如果不想输出列表中的数据带有中括号,可以遍历列表中的元素 单独输出
print('出现次数最多的数字有:%s 出现次数为:%s'%(num2,hig))