Python字符串和常用数据结构知识总结
字符串
在Python中,字符串是不可变的序列,即表示一系列字符的有序集合。字符串可以通过单引号或双引号来表示,例如:
str1 = 'Hello World!'
str2 = "Python is awesome."
常见字符串操作
字符串支持多种操作,以下是一些常见的操作:
字符串连接
使用+
号可以将两个字符串连接起来:
str1 = 'Hello'
str2 = 'World'
result = str1 + ' ' + str2
print(result)
# 输出: Hello World
字符串索引
通过索引(下标)可以访问字符串中的单个字符,索引从0开始。例如:
str1 = 'Hello'
print(str1[0]) # 输出:H
print(str1[1]) # 输出:e
print(str1[4]) # 输出:o
字符串切片
通过切片可以获取字符串的子字符串,语法为[start:end]
。例如:
str1 = 'Hello World'
print(str1[0:5]) # 输出:Hello
print(str1[6:]) # 输出:World
print(str1[:-1]) # 输出: Hello World(去掉字符串末尾的一个字符)
字符串长度
字符串长度可以通过内置函数len()
获取:
str1 = 'Hello World!'
print(len(str1)) # 输出: 12
字符串查找
可以使用find()
或index()
函数来查找字符串中是否包含指定的子字符串:
str1 = 'Hello World!'
print(str1.find('World'))
# 输出: 6
print(str1.index('World'))
# 输出: 6
find()
会返回子字符串出现的位置,如果没有找到则返回-1。而index()
函数则会抛出一个ValueError
异常,如果子字符串不存在于原字符串中。
字符串替换
可以使用replace()
函数来替换字符串中的子字符串:
str1 = 'Hello World!'
new_str = str1.replace('World', 'Python')
print(new_str)
# 输出: Hello Python!
字符串格式化
字符串格式化可以使用%
运算符或format()
函数来实现。例如:
name = 'Alice'
age = 20
# 使用%运算符进行字符串格式化
print('My name is %s, and I am %d years old.' % (name, age))
# 使用format()函数进行字符串格式化
print('My name is {}, and I am {} years old.'.format(name, age))
以上代码输出:
My name is Alice, and I am 20 years old.
My name is Alice, and I am 20 years old.
示例1:字符串反转
下面是一个用Python实现字符串反转的例子:
def reverse_string(s):
"""
将字符串s反转
"""
return s[::-1]
# 测试代码
s = "Hello World!"
print(reverse_string(s)) # 输出: "!dlroW olleH"
这里使用了切片操作,将字符串从后往前提取。
示例2:统计单词出现的频率
下面是一个用Python实现统计单词出现频率的例子:
def count_word_freq(s):
"""
统计字符串s中每个单词出现的次数,并返回一个字典
"""
words = s.split() # 分割字符串为单词列表
freq_dict = {}
for word in words:
if word in freq_dict:
freq_dict[word] += 1
else:
freq_dict[word] = 1
return freq_dict
# 测试代码
s = "Hello Python! Python is awesome."
freq_dict = count_word_freq(s)
print(freq_dict)
# 输出: {'Hello': 1, 'Python!': 1, 'Python': 1, 'is': 1, 'awesome.': 1}
这里使用了字符串的split()
函数将字符串分割成单词列表,然后使用一个字典来统计每个单词出现的次数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python字符串和常用数据结构知识总结 - Python技术站