下面是详细讲解“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]