访问 dict(字典) 和 set (集合)以及切片深度解析

dict(字典)的访问

查看字典中的元素:

get(self, key, default=None, /)
Return the value for key if key is in the dictionary, else default.
(如果key在字典中,则返回key的值,否则为默认值。)
get: 通过key去获取
keys(…)
D.keys() -> a set-like object providing a view on D’s keys
(一个类似集合的对象,提供了D键的视图)
values(…)
D.values() -> an object providing a view on D’s values
(一个提供D值视图的对象)
items(…)
D.items() -> a set-like object providing a view on D’s items
(一个类似集合的对象,提供D的项的视图)

更新合并多个字典:

update(…)
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
(从字典或可迭代对象E和F中更新D。)

访问字典练习:

print("get--------------------------------------------------")
dict_data = {"姓名":"小明", "性别":"男", "爱好":"跑步"}
print(dict_data.get("姓名"))   #输入key,会输出key的值
dict_data2 = {1:2, 2:3, 3:4}
print(dict_data2.get(4))  #打印没有元素key,会默认返回none
print(dict_data2.get(4, "Test"))  #改变其默认值
print(dict_data2)   #查看字典,并未改变字典元素的值
print("keys and values--------------------------------------")
print(dict_data2.keys())    #获取字典中所有key的值
print(dict_data2.values())   #输出字典中所有value的值
print(dict_data2.items())    #输出所有的key和value的值
print("update-----------------------------------------------")
dict_data2.update(dict_data)  #合并字典
print(dict_data2)

输出结果为:
在这里插入图片描述

set(集合)的学习

移除集合中的元素:

discard(…)
Remove an element from a set if it is a member.

​ (如果元素是集合中的成员,则从集合中移除该元素。)

​ If the element is not a member, do nothing.

​ (如果元素不是成员,则什么也不做。)
remove(…)
​ Remove an element from a set; it must be a member.

​ (从集合中移除一个元素;它必须是一个成员。)

​ If the element is not a member, raise a KeyError.

​ (如果元素不是成员,则引发KeyError。)

向集合中增加元素:

add(…)
Add an element to a set. (向集合中添加元素)

​ This has no effect if the element is already present. (如果元素已经存在,则没有效果)

访问集合练习:

set_data = {1, 2, 3}
print("discard----------------------------------------------")
set_data.discard(4)   #用discard移除一个不是集合中的元素,它将会跳过此程序
print(set_data)
# set_data.remove(4)  #用remove移除不包含于所在集合的元素,执行时将会报(KeyError)错误。(以注释)
# print(set_data)
print("add-------------------------------------------------")
set_data.add(4)   #添加元素
print(set_data)

运行结果为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z52HqcWi-1616575107167)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210323181718998.png)]

切片

概念:

定义类型: print(list_data[start:stop:step])

切片规则:

  1. 查找时遵循遵循左闭右开的原则,即从start包含给定下标的元素开始,到stop该下标的前一个下标所对应的元素结束。
    step为步长,默认步长为 1,step的正负决定start是从前往后还是从后往前切片,正为从前往后,负为从后往前。

  2. 使用下标去访问序列,其下标可以使用正负值,使用区别:
    使用负下标,是从-1开始,即从列序列的最后一个元素开始向前查找
    使用正下表,是从0开始,即从序列的第一个元素开始

切片练习:

list_data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
#想获取某一个元素,可以通过下标去访问:
print(list_data[9])
print(list_data[-10])
#想获取某一段的元素,用“:”隔开
print(list_data[5:9])  #获取 6-9 段的元素
print(list_data[4:])  #获取第5到最后一个元素
print(list_data[-1:3:-1])  #获取第5到最后一个元素
print(list_data[2:9:2])  #以步长为2,获取 3-9 段的元素
print(list_data[-2:1:-2]) #以步长为2,从第9个元素往前,获取第 3-9 段的元素

输出结果为:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值