06 - 关于几种容器数据类型

2018-07-23  本文已影响0人  卅月

1.列表(补充)

(1)修改列表元素

通过下标获取元素,然后重新赋值:(下标不能越界)
方法:列表名[下标] = 新的值

names = ['周星驰', '渣渣辉', '古天乐', '黄渤', '杨洋']
names[-1] = '李健'
print(names)    # ['周星驰', '渣渣辉', '古天乐', '黄渤', '李健']

(2).列表的其他操作

(3).获取列表中最大,最小的元素

(4).其他方法

  1. count:获取指定元素在列表中出现的次数
    列表.count(元素)

  2. extend:将一个序列中的每一个元素,添加到列表中.(与 + 不同,extend不产生新的列表)

names = ['周星驰', '渣渣辉', '古天乐', '黄渤', '李健']
names.extend(['王祖贤'])
print(names)
names.extend('王祖贤')
print(names)

['周星驰', '渣渣辉', '古天乐', '黄渤', '李健', '王祖贤']
['周星驰', '渣渣辉', '古天乐', '黄渤', '李健', '王祖贤', '王', '祖', '贤']

  1. 列表.index(元素):获取指定元素在指定列表中的索引(如果元素有多个,取第一个)

  2. 列表.reverse():将列表中的元素顺序反向 ,并不会产生新的列表

  3. 列表.sort():对列表进行排序

nums = [12, 32, 65, 13, 7, 85]
nums.sort()     # 升序
print(nums)
nums.sort(reverse=True)   #降序
print(nums)

[7, 12, 13, 32, 65, 85]
[85, 65, 32, 13, 12, 7]

  1. 列表.clear() 清空列表元素,相当于: 列表=[ ]
    列表.copy():将列表中的元素全部拷贝一份创建一个新的列表,相当于 列表[ : ]
list1 = [1,2,3,4,5]
list2 = list1.copy()
print(list1)
print(list2)

2.元组

(1).什么是元组

元组就是不可变的列表
元组值: a.使用()将元素包含起来,多个元素之间用逗号隔开,比如:(1,2,'abc')
                 b.元素的类型可以是任何的类型

(2).增删改查操作

因为元组的特性,增、删、改的操作不能用于元组。但是可以查询

colors = ('red', 'green', 'yellow', 'purple')

# 查:(同列表的操作方式)
print(colors[1])
print(colors[0::2])

green
('red', 'yellow')

len() 、 in和not in 、 +和* 、(方法同列表)
将元组转化为列表:
colors = ('red', 'green', 'yellow', 'purple')
list1 = list(colors)
print(list1, type(list1))

['red', 'green', 'yellow', 'purple'] <class 'list'>

(3).元组补充:获取元组的元素

names = (1, 2, 3, 4, 5, 6)
x, y, z, a, b, c = names            #通过多个变量分别获取元组的元素
print(x, y, z, a, b, c)             #变量的数量必须与元素数量相等

a, *b, c = names            # 用*可以获取不定长度的元素序列,*对应的变量则变成列表
print(a, b, c)

1 2 3 4 5 6
1 [2, 3, 4, 5] 6

3.字典

字典也是一种容器类型的数据类型(序列),存的数据是以键值对的形式出现的,字典中的元素全部都是键值对。
字典是可变的(可增删改),但是是无序的(不能使用下标)
字典的组成:
        键:值(key:value) 值才是真正要存的内容,key这是存值的一方式
        键: a.理论上可以使任何不可变的数据类型,但是实际开发的时候一般使用字符串作为key
              b.键是唯一的,如果存在相同的键,则后面赋的值,会覆盖前面的值
        值:可以是任意数据类型的数据

(1)字典的声明

dict1 = {}
dict2 = {'a': 1, 'b': 2, 'c': 3}

(2).字典的增删改查

a.查:

即:获取字典的元素的值,字典获取元素的值是通过key来获取的
注意:如果确定key值存在的时候,使用[]方式获取
          如果不确定key是否存在的时候,使用get()方法获取

person = {'name': '路飞', 'age': 17, 'face': 90}
print(person['name'], person['face'])
# print(person['aaa'])  # 如果key不存在,则会报错:key Error
print(person.get('name'))
print(person.get('aaa'))        # 通过get方法,如果key不存在,返回none,不会报错
b.增加元素/修改元素

通过key获取字典元素,然后赋值。当key本身就存在的时候,就是在修改元素的值,不存在的时候就是给字典添加键值对。

person['height'] = 12
print(person)
# {'name': '路飞', 'age': 17, 'face': 90, 'height': 12}

person['age'] = 18
print(person)
# {'name': '路飞', 'age': 18, 'face': 90, 'height': 12}
c.删除
del person['age']
print(person)
# {'name': '路飞', 'face': 90, 'height': 12}
he = person.pop('height')
print(person, he)
# {'name': '路飞', 'face': 90} 12   ------此处删除了‘height’对应的键值,并把value赋给了变量he得以保存。

(3)相关的数组属性

student_dict = {'name': '张三', 'study_id': 'py1805220', 'scores': {'english': 60, 'math':100}}

keys = student_dict.keys()
print(keys, type(keys))
# dict_keys(['name', 'study_id', 'scores']) <class 'dict_keys'>

# 遍历获取每个key
for key in keys:
    print(key)
"""name
study_id
scores
"""
print(student_dict.values(), type(student_dict.values()))
print(student_dict.items(), type(student_dict.items()))
# dict_values(['张三', 'py1805220', {'english': 60, 'math': 100}]) <class 'dict_values'>

(4).遍历字典

(5).列表中有字典、字典中有字典、字典中有列表

"""
声明一个变量,作用是用来存储一个班级的学生的信息。其中学生的信息包括姓名、性别、年龄、电话
至少存3个学生的信息

stu_info = [{'name': '张三', 'age': 15, 'sex': '男', 'tel': '123421323'},   #-------->使用:列表 [{字典}]
            {'name': '李四', 'age': 16, 'sex': '女', 'tel': '123421323223'},
            {'name': '王五', 'age': 18, 'sex': '男', 'tel': '12323232421323'}]

print(stu_info)

(6).其他操作

# new_dict = dict.fromkeys('abc', 100)
# new_dict = dict.fromkeys(range(10), 100)
new_dict = dict.fromkeys(['abc', 'edf', '12'], 100)
print(new_dict)

#{'abc': 100, 'edf': 100, '12': 100}
dog_dict = {'color': 'while', 'age': 3, 'type': '土狗'}
print('age' in dog_dict)

# True
dict1 = {'1': 'a', '2': 'b'}
dict2 = {'1': 'aa', '3': 'cc'}
dict1.update(dict2)
print(dict1)

# {'1': 'aa', '2': 'b', '3': 'cc'}

4.集合

(1)声明一个集合

set0 = set()    # 创建一个空的集合
set1 = {1, 2, 3, 1, 2, 5}

(2)将其他的数据转换成集合(自带去重功能)

set2 = set('abc123aaa5')
print(set2)
set3 = set([12, 'abc', 'hh', 12, 32, 'abcn'])
print(set3)
print(list(set3))

{'b', '3', 'c', '2', '5', 'a', '1'}
{32, 'hh', 'abcn', 12, 'abc'}
[32, 'hh', 'abcn', 12, 'abc']

(3).增删改查

a.查 : (遍历)

注意:集合没有办法单独通过索引获取某一个元素,需要循环遍历

b.增 / 改
set1 = {1, 2, 3}
set1.add(100)
print(set1)

{1, 2, 3, 100}

c.删

(4).判断是否包含

集合1 >= 集合2 -- 判断集合1中是否包含集合2
集合1 <= 集合2 -- 判断集合2中是否包含集合1
print({1, 2, 4} >= {1, 2, 3, 4, 5}) # False

(5).数学中的集合运算

"""求并集 |  """
print({1, 2, 3} | {2, 4, 5})  #{1, 2, 3, 4, 5}

"""求交集 &  """
print({1, 2, 3, 4} & {2, 4, 5})  #{2, 4}

"""求差集  -  """  
print({1, 2, 3, 5} - {2, 3, 4, 7})  #{1, 5}

"""求补集  ^  """
print({1, 2, 4} ^ {1, 2, 3, 4, 5})  #{3, 5}

(6)其他方法

集合.clear():清楚集合内容

print(set1.clear())  #None
上一篇 下一篇

猜你喜欢

热点阅读