字典
# 回顾&补充
面试题
#数据类型判断 a = 1 #int b = (1) #int c = ('1') #str d = (1,) #tuple
1
2
3
4
5int
- py2/py3
- 除法
- 强制转换:
- int('字符串') 【重要】
- int(布尔值)
bool :0-空字符串-空列表-空元组-空字典为False
- 强制转换:
- bool(整数) -> bool(1)/..
- bool(字符串) -> bool('xx')
- bool(列表) -> bool([x,])
- bool(元组) -> bool(())
- 强制转换:
v1 = bool(0)
v2 = bool("")
v3 = bool([])
v4 = bool(())
print(v1,v2,v3,v4) # False
1
2
3
4
5
2
3
4
5
str
- 独有功能:upper/lower/split/strip/replace/isdigit/startswith/endswith/format/join/encode
- 公共公共:
- len
- 索引
- 切片
- 步长
- for循环
- 删除【无】
- 更新【无】
- 强制转换:
- str(999) # "999"
- str(True) # "True"
- str(["唐开发",'李忠伟']) # "["唐开发",'李忠伟']" --> v2 = "".join(["唐开发",'李忠伟'])
- str(["唐开发",'李忠伟'])
list
独有功能:append/insert/pop/remove/clear/ extend
公共功能:
- len
- 索引
- 切片
- 步长
- for循环
- 删除
- 更新
强制转换:
list("asdfadfasfdadfasfd")
v1 = list("asdfadfasfdadfasfd") print(v1) #['a', 's', 'd', 'f', 'a', 'd', 'f', 'a', 's', 'f', 'd', 'a', 'd', 'f', 'a', 's', 'f', 'd']
1
2list( (11,22,33,44,) )
v1 = list( (11,22,33,44,) ) print(v1) #[11, 22, 33, 44]
1
2
tuple
独有功能【无】
公共功能:
- len
- 索引
- 切片
- 步长
- for循环
- 删除【无】
- 更新【无】
强制转换:
tuple('adfadfasdfasdfasdfafd')
v1 = tuple('adfadfasdfasdfasdfafd') print(v1) # ('a', 'd', 'f', 'a', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f', 'a', 'f', 'd')
1
2tuple([11,22,33,44])
v1 = tuple([11,22,33,44]) print(v1) # (11, 22, 33, 44)
1
2
常见的类型转换
# 字符串转数字 # 数字转字符串 # 列表转元组 # 元组转列表 # 其他转bool时,只有:0 “” [] () # 列表转字符串: nums = [11,22,33,44] for a in range(0,len(nums)): nums[a] = str(nums[a]) result = ''.join(nums) print(result)
1
2
3
4
5
6
7
8
9
10
11
# 字典
- 字典:帮助用户表示事物的信息(事物有多个属性)
基本格式:字典键的数据类型不能为list和tuple,值可以为任何类型.
dictionary = {'键':'值','键':'值','键':'值'}
1
独有功能:
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'}
1获取字典info所有键.keys()
for i in info.keys(): print(i)
1
2获取字典info所有值.values()
for i in info.values(): print(i)
1
2获取字典info所有的键值对.items()
for i in info.items(): print(i)
1
2
公共功能:
len()一个键值对为一个元素
索引
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info['name'] info['age'] #####========>>>字典索引为键
1
2
3切片【无】
步长【无】
for
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} for item in info.keys(): print(item) for item in info.values(): print(item) for a,b in info.items(): print(a,b) #name 刘伟达 #...
1
2
3
4
5
6
7
8
9
10
11修改(存在就修改/不存在就增加)
#改值 info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} info[age]=20 print(info) #{"name":'刘伟达','age':20,'gender':'男','hobby':'同桌'} #改键:先删除键值,再添加,不能直接修改 del info['hobby'] info['xxxxx'] = 'x1'
1
2
3
4
5
6
7
8删除 del[]
info = {"name":'刘伟达','age':18,'gender':'男','hobby':'同桌'} del info['name'] print(info)
1
2
3
# 重点
- int
- bool
- str
- list
- tuple
- dict
经典例题
#创建出一个用户列表,然后让用户输入用户名和密码进行登陆。
"""
user_list = [
{'user':'alex','pwd':'123'},
{'user':'oldboy','pwd':'123'},
{'user':'lishaoqi','pwd':'1123'},
{'user':'liqihang','pwd':'123'},
{'user':'xxx','pwd':'123'},
# N退出输入]
"""
lis=[]
while True:
k = input('请输入user:')
if k == 'N':
break
v = input('请输入pwd:')
usr_list = {'user':k,'pwd':v}
lis.append(usr_list)
print(lis)
a = input('请输入用户名:')
b = input('请输入密码:')
c = '输入错误,登录失败'
for i in lis:
if a == i['user'] and b==i['pwd']:
c = '输入正确登成功'
print(c)
break
print(c)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
上次更新: 2023/04/16, 18:35:33