Python基础(二)——数据容器

六、数据容器

1.list列表

[元素1,元素2,元素n…]

元素的数据类型没有要求,容纳数量最多为2^63-1个,可修改,支持重复且有序

代码作用
列表.index(元素)查找元素在列表中的下标(正向索引,若不存在则报错ValueError)
列表[下标]=修改值将列表指定下标修改为新值
列表.append(新元素)在列表尾部追加一个元素,一次只能追加一个元素
列表.extend(新列表)将新列表追加到原列表尾部,与+=效果相同
列表.insert(位置下标,新元素)在原列表指定下标插入新元素(插入位置如果超过列表尾端则追加到原列表尾端)
del 列表[下标]删除列表中指定下标的元素,相当于撕掉元素被变量赋予的标签
列表.pop(下标)将列表指定下标的元素取出并返回,可赋值给新的变量
列表.remove(指定元素)通过指定元素的内容,从前向后删除列表中出现的第一个指定元素
列表.clear()清空整个列表
列表.copy()复制列表
新列表=原列表[:]复制列表,使用切片方法
新列表=list(原列表)复制列表,使用list函数
列表.count(元素)统计元素在列表中出现的次数
len(列表)统计列表总共元素数量
列表.sort(key=选择排序依据的函数(可使用lambda匿名函数), reserve=True)可以通过参数reserve=True表示降序,会改变原列表内容
sorted(列表)对列表中元素排序,默认升序,不改变列表内容,会产生新的列表
列表[起始,结束,步长]切片操作

遍历列表:

# while循环遍历列表
i = 0
while i < len(name):
    a = name[i]
    print(a)
    i+=1
    
# for循环遍历列表
for a in name:
    print(a)
2.tuple元组

特点:支持元素重复且有序,元素类型不受限,但是元组的元素不可修改,若元组中的元素是列表则可以修改列表内的元素。

定义元组:(元素1,元素2,元素3,……)

代码作用
tuple()定义元组
()定义空元组
(元素,)定义单个元素的元组一定要在元素后加一个逗号
元组.count(元素)统计元素在元组中出现的总次数
元组.index(元素)查找元素在元组中第一次出现的下标(正向索引,若不存在则报错ValueError)
len(元组)统计元组中元素总数
元组[起始:结束:步长]切片操作

循环遍历与列表使用的方法相同

元组解包:将元组中各个元素赋值给不同的变量

a, b, c, d = t
print(a)
print(b)
print(c)
print(d)
3.序列

指内容连续、有序、可以使用下标索引的一类数据 容器,比如列表、元组、字符串等。

切片操作本质上不改变原序列,而是产生了一个新的序列。

起始、结束(不含,不包含结束本身)、步长都可以省略

4.集合

可变集合与不可变集合。

集合中元素不允许重复(会自动去重),且内容无序,故不支持下标索引访问,但是允许修改

{元素1,元素2,元素3,……}

可变集合=set()创建空集合

不可变集合=frozenset()创建空集合

对于可变集合有:

代码作用
集合.add(元素)将指定元素添加到集合内
集合.remove(元素)移除指定元素
集合.pop()随机移除一个元素,可使用变量接收取出元素
集合.clear()清空集合
集合1.difference(集合2)取出集合1中集合2的差集(集合1有集合2没有),得到一个新的集合
集合1.difference_update(集合2)在集合1内删除和集合2相同的元素,集合1发生变化,集合2不变
集合1.union(集合2)将集合1与集合2取并集,得到新集合,集合1和2不变
集合1|集合2将集合1与集合2取并集,得到新集合,集合1和2不变
集合1.intersection(集合2)将集合1与集合2取交集,得到新集合,集合1和2不变
集合1&集合2将集合1与集合2取交集,得到新集合,集合1和2不变
len(集合)统计集合元素总数

不能使用while循环遍历,只能通过for循环遍历

5.dict字典

定义:{key1:value,key2:value,……}

定义空字典:字典={}

字典=dict()

一个元素包含一个键值对,元素在字典中没有严格的顺序关系。

键必须用不可变数据类型,比如数字、字符串、元组等,并且不允许重复;值可以是任意类型的,并且可以重复。

代码作用
字典[键]提取键对应值,提取前使用”键 in 字典“语句检查键值是否在字典中
字典.get(键,替代值)若键值不存在,函数返回传入的替代值,此处替代值可以如:not in this dict!提示,若省略传入替代值,则返回None
字典[key]=value字典新增元素/修改元素
字典.pop[key]获得指定key的value,同时字典被修改,指定key的元素被删除
字典.clear()清空字典
字典.keys()得到字典中全部key
字典.values()得到字典中全部value
字典.items()得到字典中全部键值对
len(字典)统计字典中键值对总数量

遍历方法:

# 方法1:通过获取全部的key
my_dict = {"1":11,"2":22,"3":33,"4":44}
keys = my_dict.keys()
for key in keys:
    print(f"key is:{key}")
    print(f"value is:{my_dict[key]}")

# 方法2:直接获取字典的键值
for key in my_dict:
    print(f"key is:{key}")
    print(f"value is:{my_dict[key]}")
    
# 例如:
info_dict = {
    "wang":{"section": "techonlogy", "salary": 3000, "class": 1},
    "zhou":{"section": "market", "salary": 5000, "class": 2},
    "lin": {"section": "market", "salary": 7000, "class": 3},
    "zhang": {"section": "techonlogy", "salary": 4000, "class": 1},
    "liu": {"section": "market", "salary": 6000, "class": 2},
}
for key1 in info_dict:
    if info_dict[key1]["class"] == 1:
        info_dict[key1]["class"] += 1
        info_dict[key1]["salary"] += 1000
print(info_dict)
总结
类别列表元组字符串集合字典
元素数量多个多个多个多个多个
元素类型任意任意仅字符任意key:不可修改数据类型;value:任意类型
下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序
使用场景一批可修改、可重复数据一批不可修改、可重复数据一串字符串数据一批去重复数据一批键值对应数据

记录学习过程的笔记,欢迎大家一起讨论,会持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值