Python常用字符串操作

  • 字符串是可以迭代的,其第一个字符所在的索引为0
  • 可以使用负索引(必须为负数)来从右向左查找可迭代对象中的元素,比如-1索引指向最后一个元素
  • 字符串和元组一样,是不可变的,想要修改,则必须创建一个新的字符串
  • 使用加法操作来拼接字符串
  • 使用乘法来重复拼接一个字符串
  • 使用.upper()方法可以将串中的每个字符改为大写,使用.lower()方法来将串中的每个字符改为小写,使用.capitalize()将字符串的首字母改为大写
  • 使用.format()方法创建新的字符串,该方法会把字符串中的“{}”替换为传入的字符串
author = "zj"
obj = "apple"
print("{} have a {}".format(author, obj)) # zj have a apple
print(f"{author} have a {obj}")  # zj have a apple
print("%s have a %s" % (author, obj))  # zj have a apple
# 三个打印的结果相同,推荐使用前面两种
  • 使用split()方法来分割字符串,返回一个字符串列表
str1 = "i love world. i like apple. who are you"
print(str1.split("."))
print(str1.split("w"))
# ['i love world', ' i like apple', ' who are you']
# ['i love ', 'orld. i like apple. ', 'ho are you']
  • 使用join方法连接可迭代对象的元素(字符串,列表,元组)
t = ("a", "b", "c")
print("".join(t)) # 'abc'

l = ["a", "b", "c"]
print("".join(l)) # 'abc'

s = "abc"
print("+".join(s)) # 'a+b+c'
  • strip()用于删除字符串开头和结尾的指定字符(默认为空格)。
string = "   Hello, World!   "

# 默认情况下删除开头和结尾的空格
print(string.strip())  # 输出: "Hello, World!"

# 删除开头和结尾的指定字符集合
print(string.strip(" H!"))  # 输出: "ello, World"

# 只删除开头的指定字符集合
print(string.lstrip(" H!"))  # 输出: "ello, World!   "

# 只删除结尾的指定字符集合
print(string.rstrip(" !"))  # 输出: "   Hello, World"

strip()方法返回一个新的字符串,原始字符串本身不会被修改。

  • replace()是字符串对象的方法,用于将字符串中的指定子字符串替换为新的字符串。
string = "Hello, World!"

# 替换指定子字符串
new_string = string.replace("World", "Python")
print(new_string)  # 输出: "Hello, Python!"

# 替换多次出现的子字符串
new_string = string.replace("l", "L")
print(new_string)  # 输出: "HeLLo, WorLd!"

# 限制替换次数
new_string = string.replace("l", "L", 1)
print(new_string)  # 输出: "HeLlo, World!"

replace()方法返回一个新的字符串,原始字符串本身不会被修改。同时,如果被替换的子字符串不存在于原始字符串中,replace()方法不会产生任何变化,直接返回原始字符串。

  • 使用index()方法来查找特定值在序列中的索引位置。该方法可用于字符串、列表和元组。下面是使用index()方法的示例:
# 字符串中使用index()
string = "Hello, World!"
index = string.index("W")
print(index)  # 输出:7

# 列表中使用index()
list = [1, 2, 3, 4, 5]
index = list.index(3)
print(index)  # 输出:2

# 元组中使用index()
tuple = (10, 20, 30, 40, 50)
index = tuple.index(40)
print(index)  # 输出:3

如果要查找的值在序列中多次出现,index()方法只会返回第一次出现的索引。如果要查找的值不在序列中,该方法将引发ValueError异常。因此,在使用index()方法之前,最好确保要查找的值存在于序列中。另外,index()方法还可以接受可选的起始和结束索引参数,用于指定在序列的特定范围内进行查找。例如:

list = [1, 2, 3, 4, 5, 3]
index = list.index(3, 2)  # 从索引2开始查找
print(index)  # 输出:2
  • 关键字innot in可检查某个字符串是否在或者不在另一个字符串中,返回结果为True和False

  • 如果要打印出带有双引号的字符串,一般要在双引号前加上反斜杠,在Python中这叫字符串转义,代表其后的符号只是一个字符,没有特殊意义。如果在被双引号界定的字符串中使用单引号,则单引号不需要转义,例如"I have a 'apple', hahaha",同理,在被单引号界定的字符串中使用双引号,则双引号不需要转义,例如'I have a "apple", hahaha'

  • 在字符串中加入\n表示换行

  • 切片(Slicing)是一种用于获取序列(如字符串、列表、元组等)中一部分元素的操作。通过指定起始索引、结束索引和步长,可以创建一个新的序列,其中包含原始序列中指定范围的元素。切片操作返回一个新的序列,不会修改原始序列。

切片的基本语法如下:

sequence[start:stop:step]

start:起始索引(包含在切片中),默认为0(序列的开头)。
stop:结束索引(不包含在切片中),默认为序列的长度。
step:步长(切片的间隔),默认为1。

下面是一些使用切片的示例:

string = "Hello, World!"
print(string[0:5])   # 输出:Hello(从索引0到4的元素)
print(string[7:])    # 输出:World!(从索引7到结束的元素)
print(string[:5])    # 输出:Hello(从开头到索引4的元素)
print(string[::2])   # 输出:Hlo ol!(每隔一个元素取一个)
print(string[::-1])  # 输出:!dlroW ,olleH(反转序列)

list = [1, 2, 3, 4, 5]
print(list[1:4])    # 输出:[2, 3, 4](从索引1到3的元素)
print(list[::2])    # 输出:[1, 3, 5](每隔一个元素取一个)
print(list[::-1])   # 输出:[5, 4, 3, 2, 1](反转序列)

tuple = (10, 20, 30, 40, 50)
print(tuple[1:4])   # 输出:(20, 30, 40)(从索引1到3的元素)
print(tuple[::2])   # 输出:(10, 30, 50)(每隔一个元素取一个)
print(tuple[::-1])  # 输出:(50, 40, 30, 20, 10)(反转序列)

你可能感兴趣的:(python,python)