Python核心基础|第七讲 元组&字典&集合及作业

元组

tup1 = ('Google', 'Runoob', 1997, 2000)

元组表现形式tuple
元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
元组解包指将元组当中的每一个元素都赋值给一个变量

# 元组是用()来表示的 tuple
tuple1 = (1, 2, 3, 4)
print(tuple1, type(tuple1))
print(tuple1[0])


tuple1 = 10
print(type(tuple1))
# 如果元组不是空元组,那么它里面至少有一个逗号
tuple2 = (10,)
tuple2 = 10,
print(type(tuple2))

# 元组的拆包
tuple1 = (1, 2, 3, 4, 5)
a,b,c,d,e = tuple1
# *a, b, c = tuple1
print(a, b, c, d, e)


# 字符串的拆包
s = 'abcdef'
a, b, *c = s
print(a, b, c)


字典

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

 字典:key-value  键-值   (名称:数据)  {}来表示
 dict1 = {}
 print(type(dict1))

# 数据类型 {key: value}  这么一个key-value我们称它为一项
# 当字典中的key有重复的时候,后面的会代替前面的





 dict3 = dict([('name', '郭靖'), ('age', 30), ('gender', '男')])
 print(dict3)

 import collections

 d1=collections.OrderedDict(([('name', '郭靖'), ('age', 30), ('gender', '男')]))
 dict1 = {'name': '郭靖',
          'age': 30,
          'gender': '男',
         'name1': '黄蓉'
          }
 print(dict1['name1'])

在这里插入图片描述

字典的遍历



dict1 = dict(name='郭靖', age=30, gender='男')
print(dict1.get('name'))

print(dict1.keys())

for i in dict1.keys():
    print(i)

print(dict1.values(),type(dict1.values()))

print(dict1.items())
for j in dict1.items():
    print(j)
for j,k in dict1.items():
    print(j)
    print(j,k)

在这里插入图片描述

深拷贝&浅拷贝

在这里插入图片描述

集合

# 集合  : set  {}
# 和列表的不同点:
# 1. 集合只能存储不可变对象
 set1 = {(1, 2), 'ab', True, None, [1, 2, 3]}
 print(set1)
# 2. 集合中存储的对象是无序的  没有索引
 set1 = {10, 6, 8}
 print(set1)
 print(set1)
# 3. 集合不能出现重复元素   去重set()
 set1 = {(1, 2), 'ab', True, None, 1, 0, False}
 print(set1)

 set1 = {}
 set1 = set()
 print(set1, type(set1))
 list1 = [1, 2, 3, 4, 5, 1, 2, 3]
# 将字典转换为集合的时候,只会包含字典当中的key
dict1 = {1: '1', 2: '2'}
s = set(dict1)
print(s)

作业

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

在这里插入图片描述

  • 2.有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。
a = [11,22,33,44,55,66,77,88,99,90,1]
under = []
above = []
for i in a:
    if i < 66:
        under.append(i)
    else:
        above.append(i)
dic = {'k1':under,'k2':above}
print(dic)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值