元组的使用

元组和列表一样,都是用来保存多个数据。使用一对小括号()来表示一个元组,元组和列表的区别在于,列表是可变的,而元组是不可变数据类型。

和列表一样,也是一个有序的存储数据的容器;可以通过下标来获取元素。

words = ['hello','yes','good','hi']  #列表
nums = (9,4,3,1,9,7,6,9,3,9) 

print(nums[3])
#nums[3] = 40  #元组是不可变数据类型,不能修改
print(nums.index(7))  #查找下标
print(nums.count(9))  #计一个元素出现的次数

特殊情况:当需要表示只有一个元素的元组时,需要在最后加","逗号,否则是一个整数,不是一个元组。

ages = (20,)

使用tuple可以将列表转换为元组。

print(tuple(words))

元组也可以使用for和while进行遍历

for i in nums:
	print(i)
    
j = 0
while j < len(nums):
	print(nums[j])
    j +=1

字典的基本使用

列表可以存储任意数据类型,但是一般情况下,都存储单一数据类型,列表只能存储值,不能对值进行描述

字典不仅可以保存值,还可以对值进行描述,使用{}大括号来表示一个字典,不仅有值value,还有值的描述key,字典里的数据都是以键值对key——value的形式保留的,key和value之间使用冒号:来连接,多个键值对之间使用逗号,来分隔。

person = {'name':'zhangsan','age':18,'math':98,'Chinese':95,'English':95,'gym':93,'height':180,'weight':150}

字典的注意事项:

字典里的key不允许重复,如果key重复了,后一个key对应的值会覆盖前一个

字典里的值value可以是任意数据类型,但key只能使用不可变数据类型一般使用字符串。

从字典里获取数据——增、删、改、查
person = {'name':'zhangsan','age':'18'}
#查找数据(字典的数据在保存时,是无序的,不能通过下标来获取)
print(person['name']) #使用key获取到对应的value

如果查找的key不存在,会报错

需求:获取一个不存在的key,不报错,使用默认值(None)

#使用字典的 get 方法,如果key不存在,会默认返回 None,而不报错
print(person.get('height'))  #None
#如果根据key获取不到value,使用给定的默认值
print(person.get('gender','female'))
字典修改和新增数据
person = {'name':'zhangsan','age':18}
#直接使用 key 可以修改对应的 value
person['name'] = 'lisi'
#如果key存在,是修改key对应的value
#如果key在字典里不存在,会往字典里添加一个新的key-value
person['gender'] = 'female'
print(person)
字典的增删改操作
#把name对应的键值对删除,执行结果是被删除的value
x = person.pop('name')
print(x)
print(person)
#popitem删除一个元素,结果是被删除的这个元素组成的键值对
result = person.popitem()
print(result)
print(person)

del person['addr']
print(person)

person.cler()  #清空一个字典
print(person)
update方法的使用

列表可以使用extend方法将两个列表合并成为一个列表

nums1 = [1,2,3,4,5,6]
nums2 = [6,7,8,9]
nums1.extend(nums2)
priint(nums1)

使用update可以将两个字典合并成一个字典

person1 = {'name':'zhangsan','age':'18'}
person2 = {'addr':'襄阳','height':180}
person1.update(person2)
print(person1)

字典之间不支持加法运算

字典的遍历
person = {'name':'zhangsan','age':18,'height':'180cm'}

特殊在列表和元组是一个单一的数据,但是字典是键值对的形式

字典第一种遍历方式:直接for……in循环字典

for x in person:  #for……in 循环获取的是key
	print(x)
    print(x,'=',person[x])

字典第二种方式:获取到所有的key,然后在遍历key,根据 key 获取value

#print(person.key())   类似一个列表
for k in person.keys():
	print(k,'=',person[k])

第三种方式:获取到所有的value,只能拿到值,不能拿到key。

for v in person.value():
	print(v)

第四种方式:把一组键值对当一个整体,同时取出。

#print(person.items())
for item in person.items():#把列表里的元素是元组,把一组当做整体进行遍历
    print(item[0],'=',item[1])
    
#拆包
for k,v in person.items():
    print(k,'=',v)