写在前面

        每篇文章会控制内容长度,避免一天太多知识点学不来。今天会讲Python五大容器:字符串(str)、列表(list)、元组(tuple)、集合(set)与字典(dict)中的字符串与列表。

一、五大容器概述

在描述容器特点的时候,其中一个特点为“是否有序”。有序的容器,可以使用下标按索引指定查询容器内的元素。

1.字符串容器(str)

  • 格式:'单引号'/"双引号"/"""多引号"""
  • 特点:有序、可存储重复数据、不支持修改

2.列表(list)

  • 格式:[1, '二', 3, 3]
  • 特点:有序、可存储重复数据、支持修改

3.元组(tuple)

  • 格式:(1, '二', 3, 3)
  • 特点:有序、可存储重复数据、不支持修改

4.集合(set)

  • 格式:{1, '二', 3}
  • 特点:无序、不可存储重复数据、支持修改

5.字典(dict)

  • 格式:{'姓名':'大猛', '性别':'男', '年龄':8} 
  • 特点:无序、不可存储重复数据、支持修改

二、字符串容器

1.字符串的下标索引

在python中,存在下标(索引)的概念。你可以通过下标指定取出字符串中存储的某个元素。

# 需求:取出字符串str1中的第三个元素
str1 = '这是一个字符串'
print(str1[2]) # 注意,下标从0开始,所以第三个元素对应的下标是2

# 需求:取出字符串str1中的倒数第二个元素
print(str1[-2]) # 倒着数的话,下标从-1开始

注意,如果尝试访问一个不存在的索引,就会报越界异常。

2.字符串的方法

在python中,内置了许多方法,其中比较常用的有以下几种

str = '  这是一个测试字符串,测试testTEST用的哦'
# 查询指定元素在字符串中出现的次数
print(str.count('测'))
# 查询指定元素在字符串中出现的索引位置,如果元素不存在就报错,多个只返回第一个
print(str.index('测'))
# 查询指定元素在字符串中出现的索引位置,如果元素不存在就返回-1,多个只返回第一个
print(str.find('测'))
# 返回字符串的元素总个数
print(len(str))
# 把指定旧字符串替换为新字符串,默认替换所有
print(str.replace('测试', 'test'))
# 去除字符串两端的指定内容,默认是空格与换行符
print(str.strip())
# 根据指定的分隔符切割字符串,会返回一个列表
print(str.split(','))
# 用指定的拼接符把容器中的元素拼接成一个字符串
print(' - '.join(str.split(',')))
# 判断是否以指定的字符开头
print(str.startswith(' '))
# 判断是否以指定的字符结尾
print(str.endswith('的哦'))
# 把所有字母都转为大写
print(str.upper())
# 把所有字母都转为小写
print(str.lower())
# 判断字符串是否为数字
print(str.isdigit())

其他还有许多方法,感兴趣的可以自行尝试一下,在容器后输入一个点就会提示可用的方法

3.字符串的遍历

使用for循环可以挨个取出容器中的元素。另外,由于字符串容器的有序性,我们还可以按索引循环遍历元素。

str = '这是一个字符串'
# 使用for循环遍历
for char in str:
    print(char)
# 使用while按索引遍历
i = 0
while i < len(str):
    print(str[i])
    i += 1

三、列表容器

1.列表的下标索引

与字符串相同,列表也有索引的概念。但是列表中是可以嵌套列表的,因此针对嵌套的列表,按索引查询时会与字符串有些不同。

# 定义一个列表
list1 = [1, 2, 3, ['a', 'b', 'c']]
# 查询list1中第四个元素
print(list1[3])
# 查询list1中第四个元素中的第二个元素
print(list1[3][1])

2.列表的增删改查

  • 增加
# 定义一个列表
list1 = [1, 2]
# 向list1追加一个元素
list1.append(3)
print(list1)
# 把指定容器中的元素挨个取出追加到list1中
str = 'test'
list1.extend(str)
print(list1)
# 把指定元素插入到list1指定索引的位置
list1.insert(3, 4)
  • 删除
# 定义一个列表
list1 = [1, 2, 3, 't', 'e', 's', 't']
# 把指定元素从列表中删除(一次只会删除一个)
list1.remove('t')
print(list1)
# 把指定索引位置的元素删除(一次可删除多个)——pop
list1.pop(4)
print(list1)
# 把指定索引位置的元素删除(一次可删除多个)——del
del list1[4:6]
print(list1)
# 清空列表中所有元素
list1.clear()
print(list1)
# 删除整个列表
del list1
  • 修改
# 定义一个列表
list1 = [1, 2, 3, 't']
# 直接修改列表指定索引位置的元素
list1[3] = 4
print(list1)
  • 查询
# 定义一个列表
list1 = [1, 2, 3, 4, 4, [7, 8, 9]]
# 查询第二个元素的值
print(list1[1])
# 查询4在list1中出现的次数
print(list1.count(4))
# 查询4在list1中出现的位置
print(list1.index(4))
# 查询list1中有多少个元素
print(len(list1))

3.列表的遍历

列表的遍历跟字符串的遍历差不多,因为两者都具有“有序”的特点。对于多层嵌套的列表,我们同样适用嵌套的循环就可以遍历出所有元素。

# 定义一个列表
list1 = [[1, 2, 3], [4, 5, 6]]
# 使用for循环遍历
for sub_list in list1:
    for item in sub_list:
        print(item)
# 同样的,列表也可利用下标进行遍历
m = 0
while m < len(list1):
    n = 0
    while n < len(list1[m]):
        print(list1[m][n])
        n += 1
    m += 1

四、本篇重点

本篇的重点是列表的增删改查,在数据处理工程中,对列表的操作是十分常用的,因此这一块需要滚瓜烂熟。

更多推荐