第七讲元组.列表,集合

元组.列表,集合

一、元组

  • 元组是一个不可变的序列,(元组内的数据是不可变话的,不可更改的)
  • 元组的表达形式 () tuple
tuple1 = (1, 2, 3, 4, 5)
  • 如果元组不是一个空元祖,那么它必须得有一个逗号
tuple2 = 10,    #tuple类型
tuple3 = (10)   #int类型
tuple3 = ()     #空元组
  • 拆包
    拆包的时候如果有, 那么有且只能有一个, 接受参数之后,结果是用一个列表来放置的*
  • 元组拆包
tuple4 = (1, 2, 3, 4)
a, *b, c = tuple4
print(a, b, c)
  • 字符串的拆包
a = 'abcde1'
b, *c = a
print(b, c)  #a ['b', 'c', 'd', 'e', '1']
  • 列表的拆包
list1 = [1, 2, 3, 4, 5]
a, *b = list1
print(a, b) # 1 [2, 3, 4, 5]

二、字典

字典:mapping 映射关系 key:value 一个字典中, 每一个key都是唯一的,我们只需要通过key就可以查找到我们需要的数据, key-value我们称之为键值对,也可以称呼它为一项item

  • 字典的创建(空) dict 用的符号是{}
 dict1 = {}  #空字典
#使用dict类去创建字典
 dict2 = {
        'name': '郭靖',
         'age': 18,
         'sex': '男',
         'name': '欧阳锋',
        'skill': '蛤蟆功'        
}
#重复的name  后面值 替换前面值

当字典中的key有重复的时候,后面的key-value会替换前面的

  • 获取value, 直接用 dict[key]
print(dict2['skill'])  #蛤蟆功
  • python2 有序字典 orderdict 无序字典
  • 字典操作
    1.赋值
    dict[key] = value
    2.添加key-value
    dict.setdefault(key, [default])
    如果这个key已经存在于字典中,则返回value,不会对字典有影响, 如果不存在,则向字典中添加这个key,并设置value
    3.dict.update() 将其他字典中的key—value添加到当前字典中
d1 = {'1': 1}
d2 = {'2': 2}
d1.update(d2)
print(d1) #{'1': 1, '2': 2}

4.浅拷贝和深拷贝
4.1浅拷贝
浅拷贝只能对第一层的数据进行拷贝,如果,第一层的数据也是个可变类型,那么浅拷贝无法将这个数据重新拷贝一份形成新的id

import  copy
dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}
# dict2 = {'1': 1, '2': 2}
dict2 = copy.copy(dict1)
# dict2 = dict1.copy()
print(id(dict1), id(dict2))
print(id(dict1['list1']), id(dict2['list1']))

4.2深拷贝
深拷贝则可以对所有的数据全部进行拷贝,形成一个新的id

dict3 = copy.deepcopy(dict1)
print(id(dict1), id(dict3))
print(id(dict1['list1']), id(dict3['list1']))

5.字典的遍历

dict1 = dict(name='郭靖', age=18, sex='男')
#通过key来遍历  dict.keys()
for k in dict1.keys():
    print(dict1[k])
# 通过value来遍历  dict.values()
for v in dict1.values():
    print(v)
# 通过一项来进行遍历  dict.items()
for k, v in dict1.items():
    print(k, '=', v)

作业

1.课常代码练习

2.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"}]}}
print(a['data']['result'][0]['src'])
print(a['data']['result'][1]['src'])
print(a['data']['result'][2]['src'])

3.有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中

list=[11,22,33,44,55,66,77,88,99,90]
list1=[]
list2=[]
for i in list:
    if i>66:
        list1.append(i)
    elif i<66:
        list2.append(i)
dic1={}
dic1.setdefault('key1',list1)
dic1.setdefault('key2',list2)
print(dic1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值