9.Python容器(列表、元组、字典):数据存储与处理的精髓

在前面的章节中,我们详细介绍了Python的变量、基本类型、运算符、条件控制、循环、函数和字符串,这个章节我们来看看列表相关的一些操作和它提供的函数。

一、列表

列表创建

# 第一种方式,用方括号
names = ["zhangsan", "lisi", "wangwu", "maliu"]
print(names)

# 第二种方式,用list函数,参数是任意可迭代对象都可以
names_new = list(["zhangsan", "lisi", "wangwu", "maliu"])
print(names_new)

列表元素访问

names = ["zhangsan", "lisi", "wangwu", "maliu"]

# 用下标访问
first = names[0]

# 负数表示从后往前
last = names[-1]

# 输出zhangsan
print(first)

# 输出maliu
print(last)

判断是否包含

names = ["zhangsan", "lisi", "wangwu", "maliu"]

# 和字符串包含的判断方式一致
contains_zhangsan = "zhangsan" in names
print(contains_zhangsan)

列表截取

names = ["zhangsan", "lisi", "wangwu", "maliu"]

# 规则同字符串的截取
sub_names = names[0:2]

列表元素更新

names = ["zhangsan", "lisi", "wangwu", "maliu"]
sub_names[0] = "zhangsan_2"
print(names)

列表元素删除

names = ["zhangsan", "lisi", "wangwu", "maliu"]
sub_names = names[0:2]

# 用del关键字删除sub_names列表中的第一个元素
del sub_names[0]

# 删除了sub_names的zhangsan,就只剩下一个lisi了
print(sub_names)

# 但是names里面的zhangsan并不会被删除
print(names)

列表遍历

names = ["zhangsan", "lisi", "wangwu", "maliu"]

# 第一种遍历
for name in names:
    print(name)

# 如果在遍历的过程中,需要元素下标,可以使用enumerate函数
for index, name in enumerate(names):
    print(index, name)

# 用range函数也可以实现一样的功能
for i in range(len(names)):
    print(i, names[i])

列表内建函数

append(obj)

在列表末尾添加新的对象

count(obj)

统计某个元素在列表中出现的次数

extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

index(obj)

从列表中找出某个值第一个匹配项的索引位置

insert(index, obj)

将对象插入列表

pop([index=-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

remove(obj)

移除列表中某个值的第一个匹配项

reverse()

反向列表中元素

sort(cmp=None, key=None, reverse=False)

对原列表进行排序

二、元组

 元组在结构上和列表是一样的,区别在于元组是不可变的

# 创建一个元组,如果只有一个元素需要加个逗号,创建元组用圆括号,而不是方括号
names = ("zhangsan",)
ages = (18, 19, 20, 21, 22)

# 元组本身不可变;但是可以把两个元组加起来,返回一个新的元组
sha_ye_bu_shi = names + ages

以下内置函数可以作用于元组

cmp(tuple1, tuple2)

比较两个元组元素。

len(tuple)

计算元组元素个数。

max(tuple)

返回元组中元素最大值。

min(tuple)

返回元组中元素最小值。

tuple(seq)

将列表转换为元组。

三、字典

 字典存储的是key-value形式的信息,其中key必须是不可变的,key如果有重复,后面的会覆盖前面的。

字典相关操作

# 创建字典
person_info = {"name": "zhangsan", "age": 18, "sex": "male"}

# 访问字典里的信息
print(person_info["name"])

# 修改字典信息
person_info["name"] = "lisi"

# 删除字典信息
del person_info["name"]

# 遍历字典信息
for key, value in person_info.items():
    print(key, value)

字典函数

clear()

删除字典内所有元素

copy()

返回一个字典的浅复制

fromkeys(seq[, val])

创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

get(key, default=None)

返回指定键的值,如果值不在字典中返回default值

has_key(key)

如果键在字典dict里返回true,否则返回false

items()

以列表返回可遍历的(键, 值) 元组数组

keys()

以列表返回一个字典所有的键

setdefault(key, default=None)

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

update(dict2)

把字典dict2的键/值对更新到dict里

values()

以列表返回字典中的所有值

pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

popitem()

返回并删除字典中的最后一对键和值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值