基本数据类型与内置方法(2)

元组

用途:存储多个不同类型的值(不能存可变类型)

定义方式:

  用小括号存储数据,数据与数据之间通过逗号分隔,值不能变

定义容器类型时,如果里面只有一个值,在值后+逗号

元组中不加逗号,就是字符串

t1=(‘a’,‘b’) t1=tuple(‘a’,'b')

常用方法:

1.索引取值:(正向取值,反向取值)

2.索引切片

3.成员运算

4.len()

5.count()

6.index

有序,不可变 ,存多个值

 

字典

用途:key一定是一个不可变类型,value可以时任意类型

定义方式:通过大括号来存储数据,通过key-value来定义键值对数据,每个键值对中间通过逗号隔开

 

字典的三种定义方式:

1.d1={'name': 'egon'}

2.s1=dict(name='sean',age=18)

3.zip

l1=['name','age']

l2=['egon',18]

z1=zip(l1,l2)

print(dict(z1))

 

常用方法:

1.按照key—value映射关系取值(可存可取)

d1 = {'name': 'egon', 'age': 73}
d1['name'] = 'tank'
d1['gender'] = 'male'
print(d1)

{'name': 'tank', 'age': 73, 'gender': 'male'}

2.成员运算

in,not in 默认判断key

3.len()获取字典中,键值对的个数

 

内置方法:

1.get:获取指定的key的值,如果值不存在,默认返回None

d1 = {'name': 'egon', 'age': 73}
# d1['name'] = 'tank'
# # d1['gender'] = 'male'
# # print(d1)
print(d1.get('name', '&'))
print(d1.get('gender', '&'))


egon
&

2.keys,values,items

keys返回所有key

values返回所有的值

items返回所有的键值对,返回值是列表套元组,每一个键值对存在元组

d1 = {'name': 'egon', 'age': 74}

print(d1.keys())
print(d1.values())
print(d1.items())


dict_keys(['name', 'age'])
dict_values(['egon', 74])
dict_items([('name', 'egon'), ('age', 74)])

 

3.pop删除:指定key删除,有返回值,返回为对应的value

d1 = {'name': 'egon', 'age': 74}

print(d1.pop('name'))
print(d1)


egon
{'age': 74}

 

 

4.popitem:随机弹出一个键值对,有返回值,返回值是一个元组

d1 = {'name': 'egon', 'age': 74}
print(d1.popitem())


('age', 74)

 

 

5.update():用新字典替换旧字典,有则修改,无则添加

d1 = {'name': 'egon', 'age': 74}
# print(d1.popitem())
d1.update({'gender': 'female'})
d1.update({'name': 'gdd'})
print(d1)


{'name': 'gdd', 'age': 74, 'gender': 'female'}

 

 

6.fromkeys:产生一个新字典,第一个参数(列表),它会以第一个参数中各个元素为key,以第二个参数为值,组成一个新的字典

d1 = {'name': 'egon', 'age': 74}
print(d1.fromkeys([1, 2, 3], 'ke'))


{1: 'ke', 2: 'ke', 3: 'ke'}

 

 

 

7.setdefault: key不存在新增键值时,有返回值,key存在返回对应的value

d1 = {'name': 'egon', 'age': 74}
# print(d1.fromkeys([1, 2, 3], 'ke'))

print(d1.setdefault('gender', 'female'))
d1.setdefault('gender', 'female')
print(d1)
d1.setdefault('name', 'wangba')
print(d1)


female
{'name': 'egon', 'age': 74, 'gender': 'female'}
{'name': 'egon', 'age': 74, 'gender': 'female'}

 

 

集合

用途:去重,关系运算

定义方式:通过大括号存储,每个元素通过逗号分隔

定义空集合,必须使用set()来定义

l1=[]

l2=""

l3={}

l4=set()

常用方法:

1.没有索引

合集:|  求两个用户的所有好友,重复的只留一个

交集:&  两个用户的共同好友

差集:-  1-2求用户1独有的好友

对称差集:^  求两个用户独有的好友,即去除共同好友

父集:  > >=  一个集合是否包含另一个集合

子集:  < <=

集合中不可能出现两个相同的元素

无序,可变,存多个值

可以增加,删除,但是不能修改

ps:frozenset时不可变集合

总结:

存一个值:数字,字符串

存多个值:列表,元组,字典,集合

 

可变:列表,字典,set集合

不可变:数字,字符串,元组,fonzenset集合

 

有序或无序

有序:字符串 列表  元组

无序:集合 字典

占用内存:

字典

列表

元组

集合

字符

数字


集合:

三大特性:

  1.值不可以重复

  2.无序

  3.存储的元素必须是不可变的

remove:值没有时会报错

discard:值没有事不会报错

 

 

# 字典在被迭代的时候,不可以对其里面的值进行修改
dict1 = {
'1': 1,
'2': 2,
}
for k, v in dict1.items():
print(k, v)
dict1.pop(k)

RuntimeError: dictionary changed size during iteration


# 列表在被迭代时,可以对其值进行修改
list1 = [1, 2, 3]
for k in list1:
print(k)
if k == 1:
list1.pop(k)
1
3

posted @ 2019-11-06 17:46  godlover  阅读(152)  评论(0编辑  收藏  举报