Python自学记录-第4周

Python自学记录目录

Python自学记录-第1周
Python自学记录-第2周
Python自学记录-第3周



前言

本周学习python中的字典和元组,同样结合知识点敲代码练习


一、概念

1.字典是什么?

  • 字典是另一种可变容器模型,且可存储任意类型对象
  • 字典是无序的
  • 采用键值对的格式 ,即dict={key:value,……}这种格式
  • 内部采用哈希的方式储存,根据键查找值

2.元组

元组和列表类似,元组用(),列表用[]
但是元组为不可变的序列,即内部元素不可更改

二、字典实例

1.创建字典

使用花括号或者dict()函数都可以创建,也可以使用灵活的字典生成式来表达,很灵活。
例如:创建一个字典{‘张三’: 100, ‘李四’: 98, ‘王五’: 45}和{‘name’: ‘杰克’, ‘age’: 20},可以用两种方式创建
注意,字典中键值定义不能重复,否则会报错!

'''字典的创建方式'''
'''花括号创建'''
scores={'张三':100,'李四':98,'王五':45}
print(scores)
print(type(scores))

'''第二种创建dict()'''
student=dict(name='杰克',age=20)
print(student)

'''高阶使用:字典生成式'''
items=['水果', '书', '其他']
price=[96,78,85]

d={items.upper():price for items, price in zip(items, price)}
print(d)

结果

{'张三': 100, '李四': 98, '王五': 45}
<class 'dict'>
{'name': '杰克', 'age': 20}
{'水果': 96, '书': 78, '其他': 85}

2.字典中获取一个数

想要获取字典中的值,根据键去查找
也有两种方式,一是使用[],二是使用get()函数
例如:获取“张三”的值
注意,若使用[]获取不存在的值,程序会报错,但使用get()则会返回一个None的结果
若get(key,value)一个不存在的键时,会默认的value值返回作为结果,不报错

scores={'张三':100,'李四':98,'王五':45}
'''方法一,使用[]'''
print(scores['张三'])
# print(scores['陈六']) # KeyError: '陈六'

'''方法二,使用get()'''
print(scores.get('张三'))
print(scores.get('陈六')) # None
print(scores.get('麻七',99))  # 键不存在时,则会返回值,不会报错

结果

100
100
None
99
45

3.字典的增删改查

使用in和not in判断键值是否存在
del删除指定元素
clear()删除全部元素
直接赋值就可以修改键对应的值

scores={'张三':100,'李四':98,'王五':45}

'''key的判断'''
print('张三' in scores)
print('张三' not in scores)

del scores['张三'] # 删除指定元素
# scores.clear() # 删除所有元素
print(scores)

scores['陈六']=98
print(scores)

scores['陈六']=100 # 修改键对应的值
print(scores)

结果

True
False
{'李四': 98, '王五': 45}
{'李四': 98, '王五': 45, '陈六': 98}
{'李四': 98, '王五': 45, '陈六': 100}

三、元组实例

1.元组创建

两种创建方式,一是()直接创建,二是tuple()函数创建
注意,元组内的逗号不要省,否则就不是元组而是字符串了

'''元组的创建方式'''
'''第一种,使用()'''
t=('Python','world',98)
print(t)
print(type(t))

'''去掉小括号'''
t2='Python','world',98
print(t2)
print(type(t2))

'''如果元组只有一个元素,逗号不能省,否则会成为字符串'''
t3=('Python',)
print(t3)
print(type(t3))

'''第二种创建方式,使用内置函数tuple()'''
t1=tuple(('Python','Wukong',1998))
print(t1)
print(type(t1))

'''空元组和空列表'''
lst=[]
lst1=list()

d={}
d2=dict()

t4=()
t5=tuple()

print('空列表',lst,lst1)
print('空字典',d,d2)
print('空元组',t4,t5)

2.元组遍历和修改

元组内元素是不可变的,但如果这个元素是列表或其他类型的元素,那么这个元素可以继续增加值
想获取元组内元素根据索引就可以

'''元组的遍历'''
t=('Python','world',98)

'''第一种获取元组元素方式,索引'''
print(t[0])
print(t[1])
print(t[2])
# print(t[3]) #IndexError: tuple index out of range

'''遍历元组'''
for i in t:
    print(i)

t=(10,[20,30],9)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))

'''尝试将t[1]改为100'''
print(id(100))
# t[1]=100 # TypeError: 'tuple' object does not support item assignment

'''元组不允许修改元素'''
'''[20,30]是列表,可变序列,可以向列表中添加元素,而列表内存地址也不变'''
t[1].append(100)
print(t[1],id(t[1]))

结果

Python
world
98
Python
world
98
(10, [20, 30], 9)
<class 'tuple'>
10 <class 'int'> 2648482578960
[20, 30] <class 'list'> 2648483953792
9 <class 'int'> 2648482578928
2648482581840
[20, 30, 100] 2648483953792

总结

当前字典和元组涉及到的知识点都很基础,后面还是要练习才能熟练掌握了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值