字典是Python中存储数据的一种方式,Python字典中可以用 keys()
命令获取一个字典中的所有的键。而元组是存放多个数据的容器,和列表很像。
in 和 not in
如何判断一个元素是否在列表中?
我们可以使用 元素 in 列表
的方法,判断一个元素是否在列表中!
pencil_box = ['pen', 'ruler', 'eraser']
a = 'ruler'
if a in pencil_box:
print('Yes')
关键词 in
也可以用于循环中,实现列表的遍历
for x in ['A', 'B', 'C']:
print(x, end='')
运行结果
ABC
判断元素不在列表中,我们可以使用 not in 列表
not in 是 不在…中 的意思,它的用法与 in 类似。
seasons = ['春天', '夏天', '秋天', '冬天']
a = '早晨'
if a not in seasons:
print(a, '不是季节')
运行结果
早晨 不是季节
print()多参数
我们如何在print()命令中再添加一个参数 ?
print(参数1, 参数2)
这样,我们就可以将两个参数打印在同一行了。要注意,打印的结果中,两个值之间会有空格隔开。
print(23,4,56)
运行结果
23 4 56
a = 'xiaowangzi'
print(a, 7)
运行结果
xiaowangzi 7
字典
字典是Python中存储数据的一种方式,Python字典中可以用 keys()
命令获取一个字典中的所有的键。而元组是存放多个数据的容器,和列表很像。
字典名称 = {键:值, 键:值}
gender = {'xiangwangzi':男, 'xiaohua':女, 'kevin':男}
print(gender)
字典里的key
不可以重复,是唯一的。但value
可以重复。
查找字典中的值
在Python中可以通过字典的键key
来查找它对应的值value
。
字典名称[键key]
trees = {'松树':120, '玉兰树':50, '槐树':70}
a = trees['玉兰树']
print(a)
运行结果
50
修改字典中的值
也可以根据字典中的key查找对应的值value,然后再修改这个value值。
trees = {'松树':120, '玉兰树':50, '槐树':70}
trees['玉兰树'] = 60
print(trees)
运行结果
{‘松树’:120, ‘玉兰树’:60, ‘槐树’:70}
字典的遍历
可以使用for循环遍历字典
trees = {'松树':120, '玉兰树':50}
for i in trees
print(i,trees[i])
运行结果
松树 120
玉兰树 50
在字典中, 使用key in 字典名称
的方法可以判断字典中是否包含这个键。
trees = {'松树':120, '玉兰树':50}
if '玉兰树' in trees:
print('YES')
字典和列表的对比
字典和列表都是python中常见的数据结构。
列表:由一系列值组成的数据结构,用数字索引来获取它的元素 索引取值
字典:对键值对的形式来存放数据的,通过键来获取对应的值。
列表
name = ['kevin', 'xiaowangzi', 'wangzi']
print(name[1])
字典
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age['xiaowangzi'])
keys()命令
python字典中可以用 keys()
命令获取一个字典中的所有的键。
字典名称.keys()
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age.keys())
运行结果
[‘kevin’, ‘xiaowangzi’, ‘wangzi’]
如何判断要查询的key是否存在?
可以用keys()命令得到所有的键,再用关键词 in 来判断要查询的 key 在不在它们之中。
info = {'01':'苹果', '02':'脐橙', '03':'香蕉'}
n = '02'
if n in info.keys():
x = info[n]
print(x)
else:
print('没有这个水果')
运行结果
脐橙
values()命令
python字典中可以用 values()
命令获取一个字典中的所有的值。
字典名称.values()
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
x = age.values()
print(x)
运行结果
[7,10,23]
新增键值
格式:
字典名称[key] = value
dict = {'飞机': 12}
dict['火车'] = 9
print(dict)
运行结果
{‘飞机’:12, ‘火车’:9}
字典中的 key
是唯一的,一个字典中不会出现相同的 key
。 所以如果新添加的key在字典中存在,那么只会修改 key
对应的 value
,而不会增加新的键值对。
dict = {'飞机': 12}
dict['飞机'] = 9
print(dict)
运行结果
{‘飞机’:9}
字典的综合运用
任务:完成数据库系统
三个功能:
- 退出功能
- 查询数据功能
- 添加数据功能
data = {'机器学习核晶':'反转乾坤', '大数据核晶':'数据回溯', '人工智能核晶':'裁决', '马文明斯基核晶':'智能创造'}
while True:
cmd = input()
if cmd == 'q':
print('退出')
break
elif cmd == 's':
name = input()
if name in data.keys():
print(data[name])
else print('没有查询到数据!')
elif cmd == 'a'
name = input()
name = func()
data[name] = func
print(data)
else
print('指令无效!')
元组
元组:存放多个数据的容器,和列表很像。 注意: 元组中的元素是不可以被修改的。
创建
要创建一个元组,需要使用小括号,括号里填入多个元素,并用逗号分隔开。
tup = ('幼年', '少年', '青年')
如果要创建的元组只包含一个元素,在定义元组时,在元素的后面加一个逗号,否则括号会被当作运算符使用。
可以往元组里存放不同类型的数据,比如字符串,数字等,各元素的数据类型也可以不相同。
tup = (0, 1, 'Hello', 'World')
索引
元组的索引同样是从0开始。
data = (‘A’, ‘B’, ‘C’)
索引 0 1 2
data = ('春', '夏', '秋', '冬')
print(data[2])
运行结果
秋
索引也可以从尾部开始,最后一个元素的索引为 -1, 倒数第二个元素的索引为 -2,以此类推。
data = (‘A’, ‘B’, ‘C’)
索引 -3 -2 -1
data = ('风', '雨', '雷', '电')
print(data[-2])
运行结果
雷
切片
想要获取元组中连续的一段元素,可以通过元组的切片来实现。元组切片得到的是一个新的元组。
元组名称[索引1:索引2
data = ('A', 'B', 'C', 'D', 'E')
print(data[1:4])
运行结果
‘B’, ‘C’, ‘E’
切出的新元组包含起始索引对应的元素,但不包含结束索引对应的元素。
当需要获取某一位置之前的所有元素,可以省略冒号前面的索引;当需要获取某一位置之后的所有元素,可以省略冒号后面的索引。
示例中的元组data,想要切片的得到’D’之 前的元素(不含’D’),可以书写代码:data[:3]
tuple()命令
使用tuple()命令可以将列表转换成元组。 tuple 是元组的意思。
height = ('12', '10', '8', '11', '5', '3')
height.remove(11)
tup = tuple(height)
print(tup)
运行结果
(12, 10, 8, 5, 3)
可以使用列表名 .remove()的方式, 删除列表中的指定元素。remove()括号中,填入 的是 需要删除的元素。
index()命令
列表的index()命令可以获取指定元素的索引
列表名.index()
info = ['G', 'O', 'O', 'D']
print(info[1])
运行结果
1
当列表有两个相同的元素时,index()得到是第一个元素的索引。
height = ('12', '10', '8', '6', '9', '3')
height.remove(9)
a = height.index(10)
height.insert(a,11)
tup = tuple(height)
print(tup)
运行结果
(12, 11, 10, 8, 6, 3)
可以使用列表名.insert()的方式, 向列表中插入元素。括号中第一个参数表示需要插入的索引位置,第二个参数表示需要插入的元素。
可变循环
range()参数
书写for循环时,要在range( )函数中设置参数:开始值和结束值,来确定循环变量的取值范围。
range(start, stop)
for i in range(1, 4)
print(i)
运行结果
1
2
3
range(1,4)返回的是一个整数序列,这个序列包含开始值1,但并不包含结束值4。
结束值是不可以被省略的,当range()函数只有1个参数时,这个参数就是结束值。此时,开始值默认为0,计数从0开始。
print()不换行
end 是print()命令的一个参数,用来设定打印结果以什么结尾。
print(打印内容,end = 结尾内容 )
省略参数end时,默认end= ‘\n’,\n是换行符,所以执行print()命令会默认换行。我们可以把end设为其他字符串。
print(1)
print(2)
运行结果
1
2
print(1,end='')
print(2)
运行结果
12
print(1, end=' ')
print(2)
运行结果
1 2
循环的步长
也可以在range()函数中再添加一个参数,让变量 i 每次都增加相同的数值,这个参数叫做“步长”
步长:可省略,省略时默认步长为1。
range(start, stop, step)
for i in range(1, 6, 2)
print(i, end=' ')
运行结果
1 3 5
可以将步长设置为一个负数,使循环变量有规律地减小。
例如下列代码,步长值为负1,循环变量 i 从3开始,每次循环减少1,执行程序,会打印出3、2、1
for i in range(3, 0, -1)
print(i)
步长为负数时,开始值要大于结束值,否则这段代码不会被执行。
可变嵌套循环
range()函数的参数可以是变量。
range()函数第一个参数表示开始值,第二个参数表示结束值,第三个参数表示步长。
a.开始值可以是变量
b.结束值可以是变量