在前面的章节中,我们详细介绍了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() | 返回并删除字典中的最后一对键和值。 |