python列表、元组、字典等序列
文章目录
序列是 python 中最基本的数据结构。
python 有 6 个序列的内置类型,但最常见的是列表和元组。
列表
下面这些就是列表:
list1 = ["a","b","c","d"]
list2 = [1,2,3]
list3 = ["a",1,"2",1]
这些被中括号括起来的就是列表的值,我们称为元素。元素与元素之间用逗号分隔。
访问列表元素
访问列表中的元素可以使用下标索引,众所周知,程序员的计数方式是从0开始的,所以列表索引也是从0开始的。
lst = ["a","b","c","d"]
print(lst[0]) #输出a
print(lst[1]) #输出b
print(lst[2]) #输出c
print(lst[3]) #输出d
print(lst[4]) #报错,因为已经超出了列表的索引范围
访问列表的元素也可以从尾部开始
lst = ["a","b","c","d"]
print(lst[-1]) # 输出d
print(lst[-2]) # 输出c
print(lst[-3]) # 输出b
print(lst[-4]) # 输出a
print(lst[-5]) # 报错,因为已经超出了列表的索引范围
当然也可以一次性访问具体部分的元素
lst = ["a","b","c","d","e","f","g"]
print(lst[0:4]) # 访问第0个到第3个元素,注意,右边那个数是上限,是不访问的,输出['a', 'b', 'c', 'd']
print(lst[2:5]) # 访问第2个到第4个元素,输出['c', 'd', 'e']
print(lst[1:-2]) # 也可以用负数索引,访问第1个到第-2个元素,也就是倒数第2个,这个也是上限,是不包含的,输出['b', 'c', 'd', 'e']
增加列表元素
增加列表的元素有两种方法,一种是使用 list.append(obj),在列表的末尾添加新的元素对象;另一种是使用 list.insert(index,obj),指定位置添加新的元素对象。
list.append(obj) 是在列表末尾添加新的对象,其中参数obj就是新的对象,此函数没有返回值,是直接修改原来的列表
list.insert(index,obj) 是将指定对象插入列表的指定位置,其中参数index是需要插入的索引位置,obj是新的对象,此函数也没有返回值,是直接修改原来的列表。
list1 = ["a","b","c","d"]
print(list1) # 输出原来的列表,输出为['a', 'b', 'c', 'd']
list1.append("e") # 向列表末尾添加新的元素对象"e"
print(list1) # 输出新的列表,输出为['a', 'b', 'c', 'd', 'e']
list1.insert(2,"666") # 向列表索引为2的位置添加一个新的元素,原来的元素和之后的元素的索引都往右移一位
print(list1) # 输出新的列表,输出为['a', 'b', '666', 'c', 'd', 'e']
删除列表元素
删除元素可以使用del语句,只需要指定索引。
list1 = ["a","b","c","d"]
print(list1) # 输出原来的列表,输出为['a', 'b', 'c', 'd']
del list1[0] # 删除第0位元素
print(list1) # 输出新的列表,输出为['b', 'c', 'd']
更新列表元素
列表的元素值是可以直接进行修改的,只需要指定索引。
list1 = ["a","b","c","d"]
print(list1) # 输出原来的列表,输出为['a', 'b', 'c', 'd']
list1[0] = "666" # 修改list1列表的第0位元素,修改为666
print(list1) # 输出原来的列表,输出为['666', 'b', 'c', 'd']
列表脚本操作符
表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 获取列表的长度,即列表的元素个数 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 将两个列表组合起来 |
[“a”] * 4 | [“a”, “a”, “a”, “a”] | 重复一个列表 |
3 in [1, 2, 3] | True | 判断元素是否存在于列表中 |
当然还有循环迭代输出列表:
for i in [1,2,3]:
print(i)
输出为:
1
2
3
列表的函数和方法
函数
函数 | 描述 |
---|---|
len(list) | 列表元素的个数 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
方法
方法 | 描述 |
---|---|
list.append(obj) | 在列表末尾添加新对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) | 将对象插入列表 |
list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort(key=None, reverse=False) | 对原列表进行排序 |
list.clear() | 清空列表 |
list.copy() | 复制列表 |
元组
python的元组和列表的增删改查差不多,不同之处是元组的元素不能修改。
元组使用小括号。
tup1 = ("a","b","c","d")
tup2 = (1,2,3,4)
增删改查
tup1 = ("a","b","c","d","e","f","g")
tup2 = ("h","i","j","k")
# 访问元组中的元素
print(tup1[0]) # 访问第0个元素,输出a
# 修改元组中的元素
# tup1[0]="666" 这样子是不可以的
tup3 = tup1 + tup2 # 对元组进行连接组合,输出('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k')
# 元组中的元素是不能删除的,但是可以删除整个元组
del tup2 # 删除后,tup2就不能被访问了,因为已经被删除了
元组运算符
表达式 | 结果 | 描述 |
---|---|---|
len((1,2,3)) | 3 | 计算元素个数 |
(1,2,3) + (4,5,6) | (1, 2, 3, 4, 5, 6) | 连接 |
(“a”,) * 4 | (“a”,“a”,“a”,“a”) | 复制 |
3 in (1,2,3) | True | 判断元素是否存在 |
当然,元组也可以和列表一样被迭代遍历。
for i in (1,2,3):
print(i)
元组的函数
函数 | 描述 |
---|---|
len(tuple) | 计算元组元素个数。 |
max(tuple) | 返回元组中元素最大值。 |
min(tuple) | 返回元组中元素最小值。 |
tuple(iterable) | 将可迭代系列转换为元组。 |
字典
字典的一般形式为:
d = {key1:value1, key2:value2, key3:value3}
其中,key叫做键,value叫做值,一个key和value叫做键值对,键和值之间用冒号分隔,每个键值对之间用逗号分割,整个字典用花括号括起来。需要注意的是,键在字典中是唯一的,即没有相同的值,而值是可以取任意值。
访问字典的值
dict = {"name":"小明", "age":15, "sex":"男"}
print(dict["name"]) # 访问字典中键为name的值,输出小明
如果访问的是不存在的键,那么就会报错。
修改字典
dict = {"name":"小明", "age":15, "sex":"男"}
# 修改字典中键的值
dict["age"] = 16 # 将键age的值改为16
print(dict["age"]) # 输出16
# 增加字典中的键值
dict["phone"] = "12345678900" # 向字典中添加一个键和值
print(dict) # 输出{'name': '小明', 'age': 16, 'sex': '男', 'phone': '12345678900'}
删除字典元素
能够删除单一的元素,也能清空字典,还可以删除整个字典。
dict = {"name":"小明", "age":15, "sex":"男"}
del dict["sex"] # 删除键name
dict.clear() # 清楚字典
del dict # 删除字典
字典的函数和方法
函数 | 描述 |
---|---|
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典,以可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
方法 | 描述 |
---|---|
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
popitem() | 随机返回并删除字典中的最后一对键和值。 |
作者:阿涛
CSDN博客主页:https://blog.csdn.net/qq_43313113
如有不对的地方,欢迎在评论区指正
欢迎大家关注我,我将持续更新更多的文章