2021/3/15第七次python课( 基本数据类型--元组和字典)

本文详细介绍了Python中元组和字典的基本概念与使用方法。包括元组的创建、特性及操作,以及字典的创建方式、键值对结构、查询、修改、增加和删除等操作。

一、元组

1.1元组简介

  • 表现形式tuple
  • 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
  • 可装任何类型数据,和list唯一不同在于,其元素不可变

1.2元组的操作

注:因元组是一个不可变数据,即常量,则没有列表等可变数据有那么多“骚操作”

  • 空元组的创建
    使用()
    如果你的创建的不是一个空元组,那么它里面至少要有一个逗号,当你只做了一个变量的赋值的时候,元组的括号可以省略
a=()
b=(1,)
c=1,
print(type(a))
print(type(b))
print(type(c))

结果

<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
  • 元组的拆包 (字符串和列表也可)
    *a,b,c =1,2,3,6,67#*号表示匹配所有,注意,不能同时存在两个或两个以上的*
  • 用索引或切片实现元组的查找工作

二、字典

2.1字典简介

  • 字典属于一种新的数据结构称为映射(mapping)
  • 字典的作用和列表类似,都是用来存储对象的容器
  • 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
  • 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
  • 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
  • 字典我们也称之为键值对(key-value)结构
  • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
  • 创建一个有数据的字典 (三种)
    1 {‘name’:‘lihua’,‘age’:20}
    2 dict(name=‘lihua’,age=20)
    3 dict([(1,2),(3,4)])或dict(([1,2],[3,4]))或dict(((1,2),(3,4)))或dict([[1,2],[3,4]])
  • 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
  • 字典的键是不能重复的,如果出现重复的后面的会替换前面的
  • 字典元素有顺序

2.2字典的使用

2.2.1“查”

注:无索引,只能通过key查询

  • dict1[‘name’]
  • dict1.get(‘name’,default) #查询‘name’的值,若不存在,则返回default

2.2.2“改”

注:dict无索引,so无法用切片

  • diat1[‘name’]=‘小明’

2.2.3“增”

  • dict. setdefault(key,value)向字典中添加key-value,如果这个key存在,则不会做任何改变,如果不存在,直接添加进去
  • dict1.update(dict2) #相当于list中的extend()

2.2.4“删”

  • del 删除字典中的key-value
  • popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为元组返回
  • pop(key[,default]) 根据key删除自定中的value.当获取到值的时候会返回对应的value.第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
    用python实现排列组合,转自destiny_python的博客

附:第七讲作业

1.a = {“name”:“123”,“data”:{“result”:[{“src”:“python1”},{“src”:“python2”},{“src”:“python3”}]}} 找到python1/python2/python3
2.有如下值列表[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。

1.
a = {"name":"123","data":{"result":[{"src":"python1"},{"src":"python2"},{"src":"python3"}]}}
print(a['data']['result'][0]["src"]+'/'+a['data']['result'][1]["src"]+'/'+a['data']['result'][2]["src"])

结果

python1/python2/python3
2.
list1=[11,22,33,44,55,66,77,88,99,90]
list2=[]
list3=[]
for i in list1:
    if i >66:
        list2.append(i)
    elif i<66:
        list3.append(i)
dict1={'name1':list2,'name2':list3}
print(dict1)

结果

{'name1': [77, 88, 99, 90], 'name2': [11, 22, 33, 44, 55]}

for循环内的i+=1不影响遍历
例如:

list1 = [1, 2, 3, 4, 5, 6, 7]
list2 = []
for i in list1:
    
    print(i)
    i += 1
    # list1.remove(i+1)
    # list2.append(i)
    # print(list2)
else:
    print('循环正常结束')

结果

1
2
3
4
5
6
7
循环正常结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔记本IT

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值