元组,集合,字典笔记整理

一:
1:is 和 == 的区别:
id:是指变量在内存中的存储位置;value:是指变量的值;type:是指变量的类型
当a is b 时为真时,id(a)=id(b),type(a)=type(b),value(a)=value(b)
当a == b 时为真时,value(a)=value(b),type(a)=type(b),id(a)不一定等于id(b)
2:关于拷贝:
拷贝的方式:直接赋值: 如li=li1
切片:如li[:]=li1
copy方法:li.copy()=li1
调用 copy 函数
拷贝的类型:
深拷贝和浅拷贝:(针对与变量中嵌套的可变数据类型)
浅拷贝:相当于从别人那里直接拿来,属性属于别人的,随别人的改变而改变
实现方法: - li.copy()
- li[:]
- copy.copy(li)
例: >>> l=[[‘a’,’b’],1,2]

l1=l[:]
id(l[0])
139984226697864
id(l1[0])
139984226697864
l[0].append(‘c’)
l
[[‘a’, ‘b’, ‘c’], 1, 2]
l1
[[‘a’, ‘b’, ‘c’], 1, 2]
深拷贝:相当于连同属性一同复制过来,属性属于自己,不随别人改变。
实现方法:- copy.deepcopy(li)
例:>>> import copy
l=[[‘a’,’b’],1,2]
l1=copy.deepcopy(l)
l1
[[‘a’, ‘b’], 1, 2]
id(l[0])
140017001309000
id(l1[0])
140017001310472
l[0].append(‘c’)
l
[[‘a’, ‘b’, ‘c’], 1, 2]
l1
[[‘a’, ‘b’], 1, 2]

二:元组

1:元组的定义:元组是戴了紧箍咒的列表,它可以存储任意数据类型,但是是不可变数据类型,不支持增删改查。

Y=(1,2,3,[1,2,3],True,2+3j,(1,2,3))
type(Y)

三.集合:

1.集合里面的元素是不可重复的;

s = {1, 2, 4, 1, 2, 3}
print(s,type(s))
{1, 2, 3, 4}

四:字典:

1.定义字典:

    >>> s = {
      'fentiao':[100, 80, 90],
      'westos':[100,100,100]
    }
    print(s, type(s)) 
    {'fentiao': [100, 80, 90], 'westos': [100, 100, 100]} <class 'dict'>
    >>> d = dict(a=1, b=2)
    >>> print(d, type(d))
    {'a': 1, 'b': 2} <class 'dict'>
  定义空字典:
>>> s = {}
>>> print(type(s))
<class 'dict'>
或:
<class 'dict'>
>>> d = dict()    
>>> print(d,type(d))
{} <class 'dict'>
  字典: key-value值, 键值对;
 value值可以是任意数据类型: int,float,long, complex, list, tuple,set, dict
  字典的嵌套:
students = {
    '13021001': {
    'name':'张龙',
        'age':18,
        'score':100
     },
        '13021003': {
        'name': '张',
        'age': 18,
        'score': 90
             }
         }

print(students[‘13021003’][‘name’]): 张
formkeys方法:
romkeys第一个参数可以 list/tuple/str/set, 将列表的每一个元素作为字典的key值, 并且所有key的value值一致
2.字典的特性:
字典是不能进行索引,切片,连接,重复的
成员操作符:判断key是否存在于字典中;

d = dict(a=1, b=2)
print(‘a’ in d)
True
for循环字典:默认循环字典的key值
for i in d:
print(i)
… …
a
b
3.字典的增加:
添加或者更改key-value对
d =dict(a=1,b=2)
d[‘g’]=10
d[‘a’]=10
d
{‘a’: 10, ‘b’: 2, ‘g’: 10}
update;
如果key值已经存在, 更新value值;
如果key值不存在, 添加key-value值;
d.update({‘a’:4, ‘f’:1})
d
{‘a’: 4, ‘b’: 2, ‘g’: 10, ‘f’: 1}
setdefault:
d.setdefault(‘d’)
d
{‘a’: 4, ‘b’: 2, ‘g’: 10, ‘f’: 1, ‘d’: None}
4.字典的删除:
pop:弹出指定的key-value值
d.pop(‘a’)
4
popitem:随机删除一个key-value对
d.popitem()
(‘d’, None)
d
{‘b’: 2, ‘g’: 10, ‘f’: 1}
del :指定删除key和其对应的value值:
del d[‘b’]
d
{‘g’: 10, ‘f’: 1}
clear :清除字典
d.clear()
d
{}
5.字典的修改和查看:
services = {
‘http’:80,
‘mysql’:3306
}

查看字典里面所有的key值
print(services.keys())

查看字典里面所有的value值
print(services.values())

查看字典里面所有的key-value值
print(services.items())

字典的遍例:
for k,v in services.items(): # k,v = (‘http’, 80)
print(k , ‘—>’, v)

    for k in services:
        print(k, '--->', services[k])


 查看指定key对应的value值, 注意: key不存在, 就会报错
print(services['http'])
print(services['https'])

get方法:get方法获取指定可以对应的value值
如果key值存在, 返回对应的value值;
如果key值不存在, 默认返回None, 如果需要指定返回的值, 传值即可;
if ‘https’ in services:
print(services[‘https’])
else:
print(‘key not exist’)
或:
print(services.get(‘https’, ‘key not exist’))

扫描二维码关注公众号,回复: 2786960 查看本文章

猜你喜欢

转载自blog.csdn.net/wx_xu0924/article/details/81707060