python字符串和常用数据结构知识总结

  • Post category:Python

下面是详细讲解“python字符串和常用数据结构知识总结”的完整攻略。

Python字符串的基本操作

字符串的定义

Python中的字符串定义可以使用单引号(”)、双引号(“”)、三单引号(”’)和三双引号(“””),其中三单引号和三双引号用于多行字符串定义。例如:

s1 = 'hello world'
s2 = "hello world"
s3 = '''hello
world'''
s4 = """hello
world"""
print(s1)
print(s2)
print(s3)
print(s4)

输出如下:

hello world
hello world
hello
world
hello
world

字符串的基本操作

Python字符串可以进行的操作有:连接字符串、重复字符、截取字符等。

  • 连接字符串:使用‘+’运算符
    python
    print('hello' + ' ' + 'world')

    输出:hello world

  • 重复字符:使用‘*’运算符
    python
    print('hello' * 3)

    输出:hellohellohello

  • 截取字符:使用[起始索引:结束索引]切片方式
    python
    s = 'hello world'
    print(s[0:5])
    print(s[:5]) # 等同于s[0:5]
    print(s[6:])
    print(s[-5:]) # 倒数第5个字符到结尾

    输出:
    hello
    hello
    world
    world

Python字符串的常用方法

Python提供了丰富的字符串方法,常用的有:查找、替换、分割、大小写转换等。

  • 查找

find()方法返回字符串中第一次出现子字符串的位置,如果没有找到则返回-1;

index()方法与find()类似,但如果没有找到则会抛出ValueError异常。

例如:
python
s = 'hello world'
print(s.find('l')) # 2
print(s.index('l')) # 2
print(s.find('k')) # -1
# print(s.index('k')) # 抛出ValueError异常

  • 替换

replace()方法返回替换所有出现的子字符串后的新字符串。

例如:
python
s = 'hello world'
s_new = s.replace('hello', 'hi')
print(s_new) # hi world

  • 分割

split()方法按照指定字符将字符串分割成列表。

例如:
python
s = 'hello,world'
print(s.split(',')) # ['hello', 'world']

  • 大小写转换

lower()方法将字符串转换成小写,upper()方法将字符串转换成大写。

例如:
python
s = 'Hello World'
print(s.lower()) # 'hello world'
print(s.upper()) # 'HELLO WORLD'

Python常用数据结构

列表(List)

Python中的列表是一种有序的集合,每个元素可以是任意类型(包括列表、元组、字典等),且可以进行增删改查等操作。

列表的定义

Python中的列表使用方括号[]定义,列表中的元素使用逗号隔开。例如:

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c']
list3 = [1, 'a', True, [1, 2, 3], {'name': 'Tom', 'age': 18}]

列表的基本操作

  • 列表的索引和切片

列表中的元素可以使用索引进行访问,索引值从0开始,可以使用[起始索引:结束索引]切片方式访问一段元素。例如:

python
list1 = [1, 2, 3, 4, 5]
print(list1[0]) # 1
print(list1[-1]) # 5
print(list1[2:4]) # [3, 4]

  • 列表的增删改

列表可以使用append()方法在末尾增加元素,insert()方法在指定位置插入元素,extend()方法扩展列表。

列表可以使用del语句删除元素,使用pop()方法删除并返回指定位置的元素,使用remove()方法删除指定的元素。

列表可以使用赋值符号=对元素进行修改。

例如:

python
list1 = [1, 2, 3, 4, 5]
list1.append(6) # [1, 2, 3, 4, 5, 6]
list1.insert(2, 'a') # [1, 2, 'a', 3, 4, 5, 6]
list1.extend([7, 8]) # [1, 2, 'a', 3, 4, 5, 6, 7, 8]
del list1[2] # [1, 2, 3, 4, 5, 6, 7, 8]
val = list1.pop(0) # val的值为1,list1的值为[2, 3, 4, 5, 6, 7, 8]
list1.remove(6) # [2, 3, 4, 5, 7, 8]
list1[0] = 1 # [1, 3, 4, 5, 7, 8]

元组(Tuple)

Python中的元组与列表类似,但是元组不可修改,即其元素不可增删改。元组使用圆括号()定义。例如:

tuple1 = (1, 2, 3, 4, 5)
tuple2 = ('a', 'b', 'c')
tuple3 = (1, 'a', True, (1, 2, 3), {'name': 'Tom', 'age': 18})

字典(Dictionary)

Python中的字典是一种无序的键值对集合,每个元素由一个键和一个值组成,键(key)作为元素的索引,值(value)可以是任意类型(包括列表、元组、字典等)。

字典的定义

Python中的字典使用花括号{}定义,使用冒号:分隔键和值,不同的键值对使用逗号隔开。例如:

dict1 = {'name': 'Tom', 'age': 18}
dict2 = {1: 'a', 2: 'b', 3: 'c'}
dict3 = {'a': [1, 2, 3], 'b': {'name': 'Jerry', 'age': 20}}

字典的基本操作

  • 字典的访问

使用字典的get(key)方法或者dict[key]的方式访问字典中的值,如果key不存在,get(key)方法返回None,dict[key]的方式会抛出KeyError异常。

例如:

python
dict1 = {'name': 'Tom', 'age': 18}
print(dict1.get('name')) # Tom
print(dict1.get('gender')) # None
# print(dict1['gender']) # 抛出KeyError异常

  • 字典的增删改

字典可以使用key:value方式添加新的键值对,update()方法更新字典中的键值对。

字典可以使用del语句删除指定的键值对。

例如:

python
dict1 = {'name': 'Tom', 'age': 18}
dict1['gender'] = 'male' # {'name': 'Tom', 'age': 18, 'gender': 'male'}
dict1.update({'age': 20, 'city': 'Beijing'}) # {'name': 'Tom', 'age': 20, 'gender': 'male', 'city': 'Beijing'}
del dict1['name'] # {'age': 20, 'gender': 'male', 'city': 'Beijing'}

示例说明

示例1

假设我们有以下字符串,现在要查找其中的某个子字符串:

s = 'hello world'

我们可以使用字符串的find()方法或者index()方法进行查找:

print(s.find('l'))  # 2
print(s.index('l')) # 2
print(s.find('k'))  # -1

输出:

2
2
-1

示例2

假设我们有以下列表,现在要在其中添加新的元素:

list1 = [1, 2, 3, 4, 5]

我们可以使用列表的append()方法在末尾添加元素,使用insert()方法在指定位置插入元素,使用extend()方法扩展列表。

list1.append(6) # [1, 2, 3, 4, 5, 6]
list1.insert(2, 'a') # [1, 2, 'a', 3, 4, 5, 6]
list1.extend([7, 8]) # [1, 2, 'a', 3, 4, 5, 6, 7, 8]

输出:

[1, 2, 3, 4, 5, 6]
[1, 2, 'a', 3, 4, 5, 6]
[1, 2, 'a', 3, 4, 5, 6, 7, 8]