当前位置 : 主页 > 编程语言 > python >

2022精心整理了100+Python字符串常用操作,收藏备用

来源:互联网 收集:自由互联 发布时间:2022-06-15
尊重原创版权: https://www.gewuweb.com/hot/17228.html # 精心整理了100+Python字符串常用操作,收藏备用 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整

尊重原创版权: <https://www.gewuweb.com/hot/17228.html>

#  精心整理了100+Python字符串常用操作,收藏备用

字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,  **

全文篇幅巨长,建议收藏再看  **


![精心整理了100+Python字符串常用操作,收藏备用](https://p26.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/ffdcb111dd6647fb81463b118457ce73?from=pc)


 * 字符串切片操作  

 * 检查字符串是否为空  

 * 计算字符串中字符出现次数的多种方法  

 * 将 String 变量转换为 float、int 或 boolean  

 * 向字符串填充或添加零的不同方法  

 * 去掉字符串中的 space 字符  

 * 生成N个字符的随机字符串  

 * 以不同的方式反转字符串  

 * 将 Camel Case 转换为 Snake Case 并更改给定字符串中特定字符的大小写  

 * 检查给定的字符串是否是 Python 中的回文字符串  

 * 检查字符串是否以列表中的一个字符串结尾  

 * 在字符串中应用查找模式  

 * 如果是 Python 中的反斜杠,则删除最后一个字符  

 * 在Python中拆分字符串而不丢失拆分字符  

 * 从字符串 Python 中提取大写和小写字符  

 * 如何在 Python 中比较字符串的索引是否相等  

 * 在每个第 4 个字符上添加空格  

 * 在 Python 中以多行方式连接字符串  

 * 在 Python 中将多个变量附加到列表中  

 * 将字符串拆分为 Python 中的字符列表  

 * 如何在 Python 中小写字符串  

 * 通过多个标点符号分割字符串  

 * Python 字符串填充  

 * 在 Python 中检查两个字符串是否包含相同的字符  

 * 在 Python 中查找给定字符串中的整个单词  

 * 查找所有出现的子字符串  

 * 在 Python 中去除所有开头在Python中的正斜杠上拆分字符串和结尾标点符号  

 * 用 Python 中的正斜杠上拆分字符串  

 * 根据 Python 中的索引位置将字符串大写  

 * 检查字符串中的所有字符是否都是Python中的数字  

 * 为什么使用'=='或'is'比较字符串有时会产生不同的结果  

 * 如何在 Python 中为字符串添加 X 个空格  

 * 如何在Python中替换字符串中的特定字符串实例  

 * 如何连接两个变量,一个是字符串,另一个是 Python 中的 int  

 * 在 Python 中的反斜杠上拆分字符串  

 * 在Python中随机大写字符串中的字母  

 * 在单词处拆分字符串并且或不保留分隔符  

 * 在 Python 中填充 n 个字符  

 * 检查变量是否等于一个字符串或另一个字符串  

 * Python字符串格式化固定宽度  

 * 在Python中查找字符串中字符的所有位置  

 * 在Python中从左右修剪指定数量的空格  

 * 在Python中按字符串中字符的位置拆分字符串  

 * 将Python字符串中的第一个和最后一个字母大写  

 * 检查字符串是否以Python中的给定字符串或字符结尾  

 * 如何在 Python 中比较两个字符串  

 * 在Python中将整数格式化为带有前导零的字符串  

 * 在Python中替换字符串的多个子字符串  

 * Python字符串替换字符  

 * 在Python中查找字符串中所有出现的单词的所有索引  

 * 在 Python 中将字符串中每个单词的首字母大写  

 * 仅在 Python 中的双引号后拆分字符串  

 * 在 Python 中以字节为单位获取字符串的大小  

 * 在 Python 中比较字符串中的字符  

 * 在 Python 中的括号和字符串之间添加空格  

 * 在 Python 中删除开头和结尾空格  

 * 在 Python 中拆分字符串以获得第一个值  

 * 在 Python 中检查字符串是大写、小写还是混合大小写  

 * Python计数字符串出现在给定字符串中  

 * 在 Python3 中用前导零填充字符串  

 * 在 Python 中检查两个字符串是否包含相同的字母和数字  

 * 在Python中的字符串中的字符之间添加空格的有效方法  

 * 在Python中查找字符串中最后一次出现的子字符串的索引  

 * 在 Python 中将字符串大写  

 * 拆分非字母数字并在 Python 中保留分隔符  

 * 计算Python中字符串中大写和小写字符的数量  

 * 在 Python 中将字符串与枚举进行比较  

 * Python中的段落格式  

 * 从 Python 中的某个索引替换字符  

 * 如何连接 str 和 int 对象  

 * 仅在 Python 中将字符串拆分为两部分  

 * 将大写字符串转换为句子大小写  

 * 在标点符号上拆分字符串  

 * 在 Python 中比较字符串  

 * 用零填充数字字符串  

 * 找到两个字符串之间的差异位置  

 * Python填充字符串到固定长度  

 * Python中的字符串查找示例  

 * 删除字符串中的开头零和结尾零  

 * Python在换行符上拆分  

 * 将字符串中的每个第二个字母大写  

 * 在 Python 中查找一个月的最后一个营业日或工作日  

 * 比较两个字符串中的单个字符  

 * 在 Python 中多次显示字符串  

 * Python 从头开始替换字符串  

 * 在 Python 中连接字符串和变量值  

 * 在每个下划线处拆分字符串并在第 N 个位置后停止  

 * Python 中列表中第一个单词的首字母大写  

 * 如何在 Python 字符串中找到第一次出现的子字符串  

 * 不同长度的 Python 填充字符串  

 * Python 比较两个字符串保留一端的差异  

 * 如何用 Python 中的一个字符替换字符串中的所有字符  

 * 在字符串中查找子字符串并在 Python 中返回子字符串的索引  

 * 从 Python 中的字符串中修剪特定的开头和结尾字符  

 * 在 Python 中按长度将字符串拆分为字符串  

 * 如何在 Python 中将字符串的第三个字母大写  

 * 将制表符大小设置为指定的空格数  

 * 将两个字符串与某些字符进行比较  

 * 字符串格式化填充负数  

 * 单独替换字符串中的第一个字符  

 * 连接固定字符串和变量  

 * 将字符串拆分为多个字符串  

 * 在 Python 中将字符串大写  

 * 将字节字符串拆分为单独的字节  

 * 用空格填写 Python 字符串  

 * 比较两个字符串并检查它们共有多少个字符  

 * 在 Python 中的数字和字符串之间添加空格  

 * 如何在 Python 中去除空格  

 * 字符串中最后一次出现的分隔符处拆分字符串  

 * 在Python中将字符串的最后一个字母大写  

 * 使用指定字符居中对齐字符串  

 * 格式字符串中动态计算的零填充  

 * 在 Python 中使用 string.replace()  

 * 在 Python 中获取字符的位置  

 * Python字符串替换多次出现  

 * 在索引后找到第一次出现的字符  

 * 在 Python 中将字符串更改为大写  

 * 在 Python 中拆分具有多个分隔符的字符串  

 * 在 Python 中获取字符串的大小  

 * Python中的字符串比较 is vs ==  

 * 每当数字与非数字相邻时,Python 正则表达式都会添加空格  

 * 在 Python 中仅按第一个空格拆分字符串  

 * 在Python中将字符串中的一些小写字母更改为大写  

 * 将字符串拆分为具有多个单词边界分隔符的单词  

 * 检查一个字符串在 Python 中是否具有相同的字符  

 * 在多个分隔符或指定字符上拆分字符串  

 * 将一个字符串附加到另一个字符串  

 * 在 Python 中遍历字符串  

 * 从 Python 中的字符串中去除标点符号  

 * 将列表转换为字符串  

 * 将 JSON 转换为字符串  

 * 对字符串列表进行排序  

 * 在 Python 中检查字符串是否以 XXXX 开头  

 * 在 Python 中将两个字符串网格或交错在一起的不同方法  

#  字符串切片操作



   test = "Python Programming"

   print("String: ", test)


   # First one character

   first_character = test[:1]

   print("First Character: ", first_character)


   # Last one character

   last_character = test[-1:]

   print("Last Character: ", last_character)


   # Everything except the first one character

   except_first = test[1:]

   print("Except First Char.: ", except_first)


   # Everything except the last one character

   except_last = test[:-1]

   print("Except First Char.: ", except_last)


   # Everything between first and last two character

   between_two = test[2:-2]

   print("Between two character: ", between_two)


   # Skip one character

   skip_one = test[0:18:2]  # [start:stop:step]

   print("Skip one character: ", skip_one)


   # Reverse String

   reverse_str = test[::-1]

   print("Reverse String: ", reverse_str)


Output:



   String:  Python Programming


   First Character:  P


   Last Character:  g


   Except First Char.:  ython Programming


   Except First Char.:  Python Programmin


   Between two character:  thon Programmi


   Skip one character:  Pto rgamn


   Reverse String:  gnimmargorP nohtyP


#  检查字符串是否为空



   import re

   from collections import Counter


   sentence = 'Canada is located in the northern part of North America'

   # Example I

   counter = len(re.findall("a", sentence))

   print(counter)


   # Example II

   counter = sentence.count('a')

   print(counter)


   # Example III

   counter = Counter(sentence)

   print(counter['a'])


Output:



   Empty


   Empty


   Empty


#  计算字符串中字符出现次数的多种方法



   import re

   from collections import Counter


   sentence = 'Canada is located in the northern part of North America'

   # Example I

   counter = len(re.findall("a", sentence))

   print(counter)


   # Example II

   counter = sentence.count('a')

   print(counter)


   # Example III

   counter = Counter(sentence)

   print(counter['a'])


Output:

#  将 String 变量转换为 float、int 或 boolean



   # String to Float

   float_string = "254.2511"

   print(type(float_string))


   string_to_float = float(float_string)

   print(type(string_to_float))


   # String to Integer

   int_string = "254"

   print(type(int_string))


   string_to_int = int(int_string)

   print(type(string_to_int))



   # String to Boolean

   bool_string = "True"

   print(type(bool_string))


   string_to_bool = bool(bool_string)

   print(type(string_to_bool))


Output:



   class 'str'


   class 'float>


   class 'str'


   class 'int'


   class 'str'


   class 'bool'


#  向字符串填充或添加零的不同方法



   num = 7


   print('{0:0>5d}'.format(num))  # left

   print('{0:0<5d}'.format(num))  # right


   print('{:05d}'.format(num))


   print("%0*d" % (5, num))

   print(format(num, "05d"))


   temp = 'test'

   print(temp.rjust(10, '0'))

   print(temp.ljust(10, '0'))


Output:



   00007


   70000


   00007


   00007


   00007


   000000test


   test000000


#  去掉字符串中的 space 字符



   string_var = "  \t a string example\n\t\r  "

   print(string_var)


   string_var = string_var.lstrip()  # trim white space from left

   print(string_var)


   string_var = "  \t a string example\t  "

   string_var = string_var.rstrip()  # trim white space from right

   print(string_var)


   string_var = "  \t a string example\t  "

   string_var = string_var.strip()  # trim white space from both side

   print(string_var)


Output:



       a string example






   a string example






       a string example


   a string example


#  生成N个字符的随机字符串



   import string

   import random



   def string_generator(size):

       chars = string.ascii_uppercase + string.ascii_lowercase

       return ''.join(random.choice(chars) for _ in range(size))



   def string_num_generator(size):

       chars = string.ascii_lowercase + string.digits

       return ''.join(random.choice(chars) for _ in range(size))



   # Random String

   test = string_generator(10)

   print(test)


   # Random String and Number

   test = string_num_generator(15)

   print(test)


Output:



   acpPTojXet


   qmpah72cjb83eqd


#  以不同的方式反转字符串



   test_string = 'Python Programming'


   string_reversed = test_string[-1::-1]

   print(string_reversed)


   string_reversed = test_string[::-1]

   print(string_reversed)



   # String reverse logically

   def string_reverse(text):

       r_text = ''

       index = len(text) - 1


       while index >= 0:

           r_text += text[index]

           index -= 1


       return r_text


   print(string_reverse(test_string))


Output:



   gnimmargorP nohtyP


   gnimmargorP nohtyP


   gnimmargorP nohtyP


#  将 Camel Case 转换为 Snake Case 并更改给定字符串中特定字符的大小写



   import re



   def convert(oldstring):

       s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', oldstring)

       return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()



   # Camel Case to Snake Case

   print(convert('CamelCase'))

   print(convert('CamelCamelCase'))

   print(convert('getHTTPResponseCode'))

   print(convert('get2HTTPResponseCode'))


   # Change Case of a particular character

   text = "python programming"

   result = text[:1].upper() + text[1:7].lower() \

       + text[7:8].upper() + text[8:].lower()

   print(result)


   text = "Kilometer"

   print(text.lower())


   old_string = "hello python"

   new_string = old_string.capitalize()

   print(new_string)


   old_string = "Hello Python"

   new_string = old_string.swapcase()

   print(new_string)


Output:



   camel_case


   camel_camel_case


   get_http_response_code


   get2_http_response_code


   Python Programming


   kilometer


   Hello python


   hELLO pYTHON


#  检查给定的字符串是否是 Python 中的回文字符串



   import re



   Continue = 1

   Quit = 2



   def main():

       choice = 0


       while choice != Quit:

           # Display the menu.

           display_menu()

           # Constant to assume string is Palindrome

           is_palindrome = True


           # Get the user's choice.

           choice = int(input('\nEnter your choice: '))


           # Perform the selected action.

           if choice == Continue:

               line = input("\nEnter a string: ")

               str_lower = re.sub("[^a-z0-9]", "", line.lower())

               for i in range(0, len(str_lower)//2):

                   if str_lower[i] != str_lower[len(str_lower) - i - 1]:

                       is_palindrome = False


               if is_palindrome:

                   print(line, "is a palindrome")

               else:

                   print(line, "is not a palindrome")

           else:

               print('Thank You.')



   def display_menu():

       print('\n*******MENU*******')

       print('1) Continue')

       print('2) Quit')



   main()


Output:



   *******MENU*******


   1) Continue


   2) Quit




   Enter your choice: 1




   Enter a string: A dog! A panic in a pagoda!


   A dog! A panic in a pagoda! is a palindrome




   *******MENU*******


   1) Continue


   2) Quit




   Enter your choice: 1




   Enter a string: Civic


   Civic is a palindrome




   *******MENU*******


   1) Continue


   2) Quit




   Enter your choice: 1




   Enter a string: Python vs Java


   Python vs Java is not a palindrome




   *******MENU*******


   1) Continue


   2) Quit




   Enter your choice: 2


   Thank You.


#  检查字符串是否以列表中的一个字符串结尾



   str_list = ['aaa', 'bbb', 'ccc', 'ddd']  # list of items

   str_test = 'testccc'  # string need to test


   for str_item in str_list:

       if str_test.endswith(str_item):

           print("found")

           break   # loop ends when result found

       else:

           print("not found")


Output:



   not found


   not found


   found


#  在字符串中应用查找模式



   import re


   s1 = 'abccba'

   s2 = 'abcabc'

   s3 = 'canadajapanuaeuaejapancanada'

   p = '123321'



   def match(s, p):

       nr = {}

       regex = []

       for c in p:

           if c not in nr:

               regex.append('(.+)')

               nr[c] = len(nr) + 1

           else:

               regex.append('\\%d' % nr[c])

       return bool(re.match(''.join(regex) + '#39;, s))



   print(match(s1, p))

   print(match(s2, p))

   print(match(s3, p))


Output:



   True

   False

   True


#  如果是 Python 中的反斜杠,则删除最后一个字符



   x = 'Canada\\'

   print(x.rstrip('\\'))


Output:



   Canada


#  在Python中拆分字符串而不丢失拆分字符



   import re

   string = 'canada-japan-india'


   print(re.split(r'(\-)', string))


Output:



   ['canada', '-', 'japan', '-', 'india']


#  从字符串 Python 中提取大写和小写字符



   string = "asdfHRbySFss"


   uppers = [l for l in string if l.isupper()]

   print (''.join(uppers))


   lowers = [l for l in string if l.islower()]

   print (''.join(lowers))


Output:



   HRSF

   asdfbyss


#  如何在 Python 中比较字符串的索引是否相等



   myString = 'AAABBB'

   for idx, char in enumerate(myString, ):

       if idx + 1 == len(myString):

           break

       if char == myString[idx + 1]:

           print(idx, char, myString[idx + 1])


Output:



   0 A A

   1 A A

   3 B B

   4 B B


#  在每个第 4 个字符上添加空格



   string = 'Test5412Test8745Test'

   print([string[i:i + 4] for i in range(0, len(string), 4)])


Output:



   ['Test', '5412', 'Test', '8745', 'Test']


#  在 Python 中以多行方式连接字符串



   str1 = "This is a demo string"

   str2 = "This is another  demo string"

   strz = ("This is a line\n" +

          str1 + "\n" +

          "This is line 2\n" +

          str2 + "\n" +

          "This is line 3\n")


   print(strz)


Output:



   This is a line

   This is a demo string

   This is line 2

   This is another  demo string

   This is line 3


#  在 Python 中将多个变量附加到列表中



   volumeA = 100

   volumeB = 20

   volumeC = 10


   vol1 = []

   vol2 = []


   vol1.extend((volumeA, volumeB, volumeC))

   vol2 += [val for name, val in globals().items() if name.startswith('volume')]


   print(vol1)

   print(vol2)


Output:



   [100, 20, 10]

   [100, 20, 10]


#  将字符串拆分为 Python 中的字符列表



   s = 'canada'

   l = list(s)

   print(l)


Output:



   ['c', 'a', 'n', 'a', 'd', 'a']


#  如何在 Python 中小写字符串



   text = ['Canada', 'JAPAN']


   text = [txt.lower() for txt in text]

   print(text)


Output:



   ['canada', 'japan']


#  通过多个标点符号分割字符串



   import re

   s = 'a,b,c d!e.f\ncanada\tjapan&germany'


   l = re.split('[?.,\n\t&! ]', s)


   for i in l:

       print(i)


Output:



   a

   b

   c

   d

   e

   f

   canada

   japan

   germany


#  Python 字符串填充



   lines_of_text = [

       (123, 5487, 'Testing', 'Billy', 'Jones'),

       (12345, 100, 'Test', 'John M', 'Smith')

   ]


   for mytuple in lines_of_text:

       name = '{}, {}'.format(mytuple[4], mytuple[3])

       value = '#39; + str(mytuple[1])

       print('{name:<20} {id:>8} {test:<12} {value:>8}'.format(

           name=name, id=mytuple[0], test=mytuple[2], value=value)

       )


Output:



   Jones, Billy              123 Testing         $5487

   Smith, John M           12345 Test             $100


#  在 Python 中检查两个字符串是否包含相同的字符



   str1 = 'caars'

   str2 = 'rats'

   str3 = 'racs'


   print(set(str1)==set(str2))

   print(set(str1)==set(str3))


Output:



   False

   True


#  在 Python 中查找给定字符串中的整个单词



   def contains_word(s, w):

       return (' ' + w + ' ') in (' ' + s + ' ')



   result = contains_word('those who seek shall find', 'find')

   print(result)

   result = contains_word('those who seek shall find', 'finds')

   print(result)


Output:



   True

   False


#  查找所有出现的子字符串



   import re


   aString = 'this is a string where the substring "is" is repeated several times'

   print([(a.start(), a.end()) for a in list(re.finditer('is', aString))])


Output:



   [(2, 4), (5, 7), (38, 40), (42, 44)]


#  在 Python 中去除所有开头在Python中的正斜杠上拆分字符串和结尾标点符号



   from string import punctuation

   s = '.$958-5-Canada,#'


   print(s.strip(punctuation))


Output:



   958-5-Canada


#  用 Python 中的正斜杠上拆分字符串



   s = 'canada/japan/australia'

   l = s.split('/')


   print(l)


Output:



   ['canada', 'japan', 'australia']


#  根据 Python 中的索引位置将字符串大写



   def capitalize(s, ind):

       split_s = list(s)

       for i in ind:

           try:

               split_s[i] = split_s[i].upper()

           except IndexError:

               print('Index out of range : ', i)

       return "".join(split_s)



   print(capitalize("abracadabra", [2, 6, 9, 10, 50]))


Output:



   Index out of range :  50

   abRacaDabRA


#  检查字符串中的所有字符是否都是Python中的数字



   a = "1000"

   x = a.isdigit()

   print(x)


   b = "A1000"

   x = b.isdigit()

   print(x)


Output:



   True

   False


#  为什么使用'=='或'is'比较字符串有时会产生不同的结果



   a = 'canada'

   b = ''.join(['ca', 'na', 'da'])

   print(a == b)

   print(a is b)


   a = [1, 2, 3]

   b = [1, 2, 3]

   print(a == b)

   print(a is b)


   c = b

   print(c is b)


Output:



   True

   False

   True

   False

   True


#  如何在 Python 中为字符串添加 X 个空格



   print('canada'.ljust(10) + 'india'.ljust(20) + 'japan')


Output:



   canada    india               japan


#  如何在Python中替换字符串中的特定字符串实例



   def nth_replace(str,search,repl,index):

       split = str.split(search,index+1)

       if len(split)<=index+1:

           return str

       return search.join(split[:-1])+repl+split[-1]


   str1 = "caars caars caars"

   str2 = nth_replace(str1, 'aa', 'a', 1)


   print(str2)


Output:



   caars cars caars


#  如何连接两个变量,一个是字符串,另一个是 Python 中的 int



   int1 = 10

   str1 = 'test'


   print(str(int1) + str1)


Output:



   10test


#  在 Python 中的反斜杠上拆分字符串



   s = r'canada\japan\australia'

   l = s.split('\\')


   print(l)


Output:



   ['canada', 'japan', 'australia']


#  在Python中随机大写字符串中的字母



   from random import choice


   x = "canada japan australia"

   print(''.join(choice((str.upper, str.lower))(c) for c in x))


Output:



   CANaDA JaPan auStRALIa


#  在单词处拆分字符串并且或不保留分隔符



   import re


   string = "Canada AND Japan NOT Audi OR BMW"


   l = re.split(r'(AND|OR|NOT)', string)

   print(l)


Output:



   ['Canada ', 'AND', ' Japan ', 'NOT', ' Audi ', 'OR', ' BMW']


#  在 Python 中填充 n 个字符



   def header(txt: str, width=30, filler='*', align='c'):

       assert align in 'lcr'

       return {'l': txt.ljust, 'c': txt.center, 'r': txt.rjust}[align](width, filler)



   print(header("Canada"))

   print(header("Canada", align='l'))

   print(header("Canada", align='r'))


Output:



   ************Canada************

   Canada************************

   ************************Canada


#  检查变量是否等于一个字符串或另一个字符串



   x = 'canada'


   if x in ['canada', 'japan', 'germany', 'australia']:

       print("Yes")


Output:



   true


#  Python字符串格式化固定宽度



   num1 = 0.04154721841

   num2 = 10.04154721841

   num3 = 1002.04154721841


   print "{0:<12.11g}".format(num1)[:12]

   print "{0:<12.11g}".format(num2)[:12]

   print "{0:<12.11g}".format(num3)[:12]


Output:



   100.041549

   0.04159874

   12.8878877


#  在Python中查找字符串中字符的所有位置



   test = 'canada#japan#uae'

   c = '#'

   print([pos for pos, char in enumerate(test) if char == c])


Output:



   [6, 12]


#  在Python中从左右修剪指定数量的空格



   def trim(text, num_of_leading, num_of_trailing):

       text = list(text)

       for i in range(num_of_leading):

           if text[i] == " ":

               text[i] = ""

           else:

               break


       for i in range(1, num_of_trailing+1):

           if text[-i] == " ":

               text[-i] = ""

           else:

               break

       return ''.join(text)



   txt1 = "   Candada     "

   print(trim(txt1, 1, 1))

   print(trim(txt1, 2, 3))

   print(trim(txt1, 6, 8))


Output:



     Candada    

    Candada  

   Candada


#  在Python中按字符串中字符的位置拆分字符串



   str = 'canadajapan'

   splitat = 6

   l, r = str[:splitat], str[splitat:]

   print(l)

   print(r)


Output:



   canada

   japan


#  将Python字符串中的第一个和最后一个字母大写



   string = "canada"


   result = string[0:1].upper() + string[1:-1].lower() + string[-1:].upper()

   print(result)


Output:



   CanadA


#  检查字符串是否以Python中的给定字符串或字符结尾



   txt = "Canada is a great country"


   x = txt.endswith("country")


   print(x)


Output:



   True


#  如何在 Python 中比较两个字符串



   str1 = "Canada"

   str2 = "Canada"

   print(str1 is str2)  # True

   print(str1 == str2)  # True


   string1 = ''.join(['Ca', 'na', 'da'])

   string2 = ''.join(['Can', 'ada'])

   print(string1 is string2)  # False

   print(string1 == string2)  # True


Output:



   True

   True

   False

   True


#  在Python中将整数格式化为带有前导零的字符串



   x = 4

   x = str(x).zfill(5)

   print(x)


Output:

#  在Python中替换字符串的多个子字符串



   s = "The quick brown fox jumps over the lazy dog"

   for r in (("brown", "red"), ("lazy", "quick")):

       s = s.replace(*r)


   print(s)


Output:



   The quick red fox jumps over the quick dog


#  Python字符串替换字符



   s = "The quick brown fox jumps over the lazy dog"

   for r in (("brown", "red"), ("lazy", "quick")):

       s = s.replace(*r)


   print(s)


Output:



   The quick red fox jumps over the quick dog


#  在Python中查找字符串中所有出现的单词的所有索引



   import re


   sentence = 'this is a sentence this this'

   word = 'this'


   for match in re.finditer(word, sentence):

       print(match.start(), match.end())


Output:

#  在 Python 中将字符串中每个单词的首字母大写



   import string


   x = "they're bill's friends from the UK"

   x = string.capwords(x)

   print(x)


   x = x.title()

   print(x)


Output:



   They're Bill's Friends From The Uk

   They'Re Bill'S Friends From The Uk


#  仅在 Python 中的双引号后拆分字符串



   s = '"Canada", "Japan", "Germany", "Russia"'

   l = ['"{}"'.format(s) for s in s.split('"') if s not in ('', ', ')]


   for item in l:

       print(item)


Output:



   "Canada"

   "Japan"

   "Germany"

   "Russia"


#  在 Python 中以字节为单位获取字符串的大小



   string1 = "Canada"

   print(len(string1.encode('utf-16')))


Output:

#  在 Python 中比较字符串中的字符



   myString = 'AAABBB'

   for idx, char in enumerate(myString, ):

       if idx + 1 == len(myString):

           break

       if char == myString[idx + 1]:

           print(idx, char, myString[idx + 1])


Output:



   0 A A

   1 A A

   3 B B

   4 B B


#  在 Python 中的括号和字符串之间添加空格



   import re


   test = "example(test)"

   test2 = "example(test)example"

   test3 = "(test)example"

   test4 = "example (test) example"


   for i in [test, test2, test3, test4]:

       print(re.sub(r"[^\S]?(\(.*?\))[^\S]?", r" \1 ", i).strip())


Output:



   example (test)

   example (test) example

   (test) example

   example (test) example


#  在 Python 中删除开头和结尾空格



   s = '   canada   '

   print(s.strip())


Output:



   canada


#  在 Python 中拆分字符串以获得第一个值



   s = 'canada-japan-australia'

   l = s.split('-')[0]

   print(l)


   string = 'canada-japan-australia'

   print(string[:string.index('-')])


Output:



   canada

   canada


#  在 Python 中检查字符串是大写、小写还是混合大小写



   words = ['The', 'quick', 'BROWN', 'Fox',

            'jumped', 'OVER', 'the', 'Lazy', 'DOG']


   print([word for word in words if word.islower()])


   print([word for word in words if word.isupper()])


   print([word for word in words if not word.islower() and not word.isupper()])


Output:



   ['quick', 'jumped', 'the']

   ['BROWN', 'OVER', 'DOG']

   ['The', 'Fox', 'Lazy']


#  Python计数字符串出现在给定字符串中



   txt = "I love Canada, Canada is one of the most impressive countries in the world. Canada is a great country."


   x = txt.count("Canada")


   print(x)


Output:

#  在 Python3 中用前导零填充字符串



   hour = 4

   minute = 3


   print("{:0>2}:{:0>2}".format(hour, minute))

   print("{:0>3}:{:0>5}".format(hour, minute))

   print("{:0<3}:{:0<5}".format(hour, minute))

   print("{:lt;3}:{:#<5}".format(hour, minute))


Output:



   04:03

   004:00003

   400:30000

   4$:3####


#  在 Python 中检查两个字符串是否包含相同的字母和数字



   from string import ascii_letters, digits



   def compare_alphanumeric(first, second):

       for character in first:

           if character in ascii_letters + digits and character not in second:

               return False

       return True



   str1 = 'ABCD'

   str2 = 'ACDB'

   print(compare_alphanumeric(str1, str2))


   str1 = 'A45BCD'

   str2 = 'ACD59894B'

   print(compare_alphanumeric(str1, str2))


   str1 = 'A45BCD'

   str2 = 'XYZ9887'

   print(compare_alphanumeric(str1, str2))


Output:



   True

   True

   False


#  在Python中的字符串中的字符之间添加空格的有效方法



   s = "CANADA"


   print(" ".join(s))

   print("-".join(s))

   print(s.replace("", " ")[1: -1])


Output:



   C A N A D A

   C-A-N-A-D-A

   C A N A D A


#  在Python中查找字符串中最后一次出现的子字符串的索引



   s = 'What is Canada famous for?'


   print(s.find('f'))

   print(s.index('f'))

   print(s.rindex('f'))

   print(s.rfind('f'))


Output:

#  在 Python 中将字符串大写



   x = 'canada'

   x = x.capitalize()


   print(x)


Output:



   Canada


#  拆分非字母数字并在 Python 中保留分隔符



   import re


   s = "65&Can-Jap#Ind^UK"

   l = re.split('([^a-zA-Z0-9])', s)

   print(l)


Output:



   ['65', '&', 'Can', '-', 'Jap', '#', 'Ind', '^', 'UK']


#  计算Python中字符串中大写和小写字符的数量



   string = "asdfHRbySFss"


   uppers = [l for l in string if l.isupper()]

   print(len(uppers))


   lowers = [l for l in string if l.islower()]

   print(len(lowers))


Output:

#  在 Python 中将字符串与枚举进行比较



   from enum import Enum, auto



   class Signal(Enum):

        red = auto()

        green = auto()

        orange = auto()


        def equals(self, string):

             return self.name == string



   brain_detected_colour = "red"

   print(Signal.red.equals(brain_detected_colour))


   brain_detected_colour = "pink"

   print(Signal.red.equals(brain_detected_colour))


Output:



   True

   False


#  Python中的段落格式



   import textwrap


   hamlet = '''\

   Lorum ipsum is the traditional Latin placeholder text, used when a designer needs a chunk of text for dummying up a layout.

   Journo Ipsum is like that, only using some of the most common catchphrases, buzzwords, and bon mots of the future-of-news crowd.

   Hit reload for a new batch. For entertainment purposes only.'''


   wrapper = textwrap.TextWrapper(initial_indent='\t' * 1,

                                  subsequent_indent='\t' * 2,

                                  width=40)


   for para in hamlet.splitlines():

       print(wrapper.fill(para))


Output:



    Lorum ipsum is the traditional Latin

     placeholder text, used when a designer

     needs a chunk of text for dummying up

     a layout.

    Journo Ipsum is like that, only using

     some of the most common catchphrases,

     buzzwords, and bon mots of the future-

     of-news crowd.

    Hit reload for a new batch. For

     entertainment purposes only.


#  从 Python 中的某个索引替换字符



   def nth_replace(str,search,repl,index):

       split = str.split(search,index+1)

       if len(split)<=index+1:

           return str

       return search.join(split[:-1])+repl+split[-1]


   str1 = "caars caars caars"

   str2 = nth_replace(str1, 'aa', 'a', 1)


   print(str2)


Output:



   caars cars caars


#  如何连接 str 和 int 对象



   i = 123

   a = "foobar"

   s = a + str(i)

   print(s)


Output:



   foobar123


#  仅在 Python 中将字符串拆分为两部分



   s = 'canada japan australia'

   l = s.split(' ', 1)

   print(l)


Output:



   ['canada', 'japan australia']


#  将大写字符串转换为句子大小写



   text = ['CANADA', 'JAPAN']


   text = [txt.capitalize() for txt in text]

   print(text)


Output:



   ['Canada', 'Japan']


#  在标点符号上拆分字符串



   string = 'a,b,c d!e.f\ncanada\tjapan&germany'

   identifiers = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~\n\t '


   listitems = "".join((' ' if c in identifiers else c for c in string)).split()


   for item in listitems:

       print(item)


Output:



   a

   b

   c

   d

   e

   f

   canada

   japan

   germany


#  在 Python 中比较字符串



   str1 = "Canada"

   str2 = "Canada"

   print(str1 is str2)  # True

   print(str1 == str2)  # True


   string1 = ''.join(['Ca', 'na', 'da'])

   string2 = ''.join(['Can', 'ada'])

   print(string1 is string2)  # False

   print(string1 == string2)  # True


Output:



   True

   True

   False

   True


#  用零填充数字字符串



   num = 123

   print('{:<08d}'.format(num))

   print('{:>08d}'.format(num))


   string = '123'

   print(string.ljust(8, '0'))

   print(string.rjust(8, '0'))


   print(string[::-1].zfill(8)[::-1])


Output:

#  找到两个字符串之间的差异位置



   def dif(a, b):

       return [i for i in range(len(a)) if a[i] != b[i]]


   print(dif('stackoverflow', 'stacklavaflow'))


Output:



   [5, 6, 7, 8]


#  Python填充字符串到固定长度



   number = 4


   print(f'{number:05d}')  # (since Python 3.6), or

   print('{:05d}'.format(number))  # or


   print('{0:05d}'.format(number))

   print('{n:05d}'.format(n=number))  # or (explicit `n` keyword arg. selection)

   print(format(number, '05d'))


Output:

#  Python中的字符串查找示例



   import re


   text = 'This is sample text to test if this pythonic '\

          'program can serve as an indexing platform for '\

          'finding words in a paragraph. It can give '\

          'values as to where the word is located with the '\

          'different examples as stated'


   find_the_word = re.finditer('as', text)


   for match in find_the_word:

       print('start {}, end {}, search string \'{}\''.

             format(match.start(), match.end(), match.group()))


Output:



   start 63, end 65, search string 'as'

   start 140, end 142, search string 'as'

   start 200, end 202, search string 'as'


#  删除字符串中的开头零和结尾零



   list_num = ['000231512-n', '1209123100000-n00000',

                'alphanumeric0000', '000alphanumeric']


   print([item.strip('0') for item in list_num])   # Remove leading + trailing '0'

   print([item.lstrip('0') for item in list_num])  # Remove leading '0'

   print([item.rstrip('0') for item in list_num])  # Remove trailing '0'


Output:



   ['231512-n', '1209123100000-n', 'alphanumeric', 'alphanumeric']

   ['231512-n', '1209123100000-n00000', 'alphanumeric0000', 'alphanumeric']

   ['000231512-n', '1209123100000-n', 'alphanumeric', '000alphanumeric']


#  Python在换行符上拆分



   s = 'line 1\nline 2\nline without newline'

   l = s.splitlines(True)


   print(l)


Output:



   ['line 1\n', 'line 2\n', 'line without newline']


#  将字符串中的每个第二个字母大写



   s = 'canada'

   s = "".join([x.upper() if i % 2 != 0 else x for i, x in enumerate(s)])


   print(s)


Output:



   cAnAdA


#  在 Python 中查找一个月的最后一个营业日或工作日



   import calendar



   def last_business_day_in_month(year: int, month: int) -> int:

       return max(calendar.monthcalendar(year, month)[-1:][0][:5])



   print(last_business_day_in_month(2021, 1))

   print(last_business_day_in_month(2021, 2))

   print(last_business_day_in_month(2021, 3))

   print(last_business_day_in_month(2021, 4))

   print(last_business_day_in_month(2021, 5))


Output:

#  比较两个字符串中的单个字符



   def compare_strings(a, b):

       result = True

       if len(a) != len(b):

           print('string lengths do not match!')

       for i, (x, y) in enumerate(zip(a, b)):

           if x != y:

               print(f'char miss-match {x, y} in element {i}')

               result = False

       if result:

           print('strings match!')

       return result




   print(compare_strings("canada", "japan"))


Output:



   string lengths do not match!

   char miss-match ('c', 'j') in element 0

   char miss-match ('n', 'p') in element 2

   char miss-match ('d', 'n') in element 4

   False


#  在 Python 中多次显示字符串



   print('canada' * 3)

   print(*3 * ('canada',), sep='-')


Output:



   canadacanadacanada

   canada-canada-canada


#  Python从头开始替换字符串



   def nth_replace(s, old, new, occurrence):

       li = s.rsplit(old, occurrence)

       return new.join(li)



   str1 = "caars caars caars caars caars"

   str2 = nth_replace(str1, 'aa', 'a', 1)

   print(str2)


   str2 = nth_replace(str1, 'aa', 'a', 2)

   print(str2)


   str2 = nth_replace(str1, 'aa', 'a', 3)

   print(str2)


Output:



   caars caars caars caars cars

   caars caars caars cars cars

   caars caars cars cars cars


#  在 Python 中连接字符串和变量值



   year = '2020'


   print('test' + str(year))

   print('test' + year.__str__())


Output:



   test2020

   test2020


#  在每个下划线处拆分字符串并在第 N 个位置后停止



   s = 'canada_japan_australia_us_uk'

   l = s.split('_', 0)

   print(l)


   l = s.split('_', 1)

   print(l)


   l = s.split('_', 2)

   print(l)


Output:



   ['canada_japan_australia_us_uk']

   ['canada', 'japan_australia_us_uk']

   ['canada', 'japan', 'australia_us_uk']


#  Python中列表中第一个单词的首字母大写



   text = ['johnny rotten', 'eddie vedder', 'kurt kobain',

              'chris cornell', 'micheal phillip jagger']


   text = [txt.capitalize() for txt in text]

   print(text)


Output:



   ['Johnny rotten', 'Eddie vedder', 'Kurt kobain', 'Chris cornell', 'Micheal phillip jagger']


#  如何在 Python 字符串中找到第一次出现的子字符串



   test = 'Position of a character'

   print(test.find('of'))

   print(test.find('a'))


Output:

#  不同长度的Python填充字符串



   data = [1148, 39, 365, 6, 56524]


   for element in data:

       print("{:>5}".format(element))


Output:

#  Python比较两个字符串保留一端的差异



   def after(s1, s2):

       index = s1.find(s2)

       if index != -1 and index + len(s2) < len(s1):

           return s1[index + len(s2):]

       else:

           return None


   s1 = "canada"

   s2 = "can"


   print(after(s1, s2))


Output:



   ada


#  如何用Python中的一个字符替换字符串中的所有字符



   test = 'canada'

   print('#39; * len(test))


Output:



   $$$


#  在字符串中查找子字符串并在 Python 中返回子字符串的索引



   def find_str(s, char):

       index = 0


       if char in s:

           c = char[0]

           for ch in s:

               if ch == c:

                   if s[index:index + len(char)] == char:

                       return index


               index += 1


       return -1



   print(find_str("India Canada Japan", "Canada"))

   print(find_str("India Canada Japan", "cana"))

   print(find_str("India Canada Japan", "Uae"))


Output:



   6

   -1

   -1


#  从 Python 中的字符串中修剪特定的开头和结尾字符



   number = '+91 874854778'


   print(number.strip('+'))

   print(number.lstrip('+91'))


Output:

#  在 Python 中按长度将字符串拆分为字符串



   string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"


   x = 3

   res = [string[y - x:y] for y in range(x, len(string) + x, x)]

   print(res)


Output:



   ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQR', 'STU', 'VWX', 'YZ']


#  如何在 Python 中将字符串的第三个字母大写



   s = "xxxyyyzzz"


   # convert to list

   a = list(s)


   # change every third letter in place with a list comprehension

   a[2::3] = [x.upper() for x in a[2::3]]


   # back to a string

   s = ''.join(a)


   print(s)


Output:



   xxXyyYzzZ


#  将制表符大小设置为指定的空格数



   txt = "Canada\tis\ta\tgreat\tcountry"


   print(txt)

   print(txt.expandtabs())

   print(txt.expandtabs(2))

   print(txt.expandtabs(4))

   print(txt.expandtabs(10))


Output:



   Canada is a great country

   Canada  is      a       great   country

   Canada  is  a great country

   Canada  is  a   great   country

   Canada    is        a         great     country


#  将两个字符串与某些字符进行比较



   str1 = "Can"

   str2 = "Canada"

   print(str1 in str2)

   print(str1.startswith(str2))

   print(str2.startswith(str1))


   print(str1.endswith(str2))


   str3 = "CAN"

   print(str3 in str2)


Output:



   True

   False

   True

   False

   False


#  字符串格式化填充负数



   n = [-2, -8, 1, -10, 40]


   num = ["{1:0{0}d}".format(2 if x >= 0 else 3, x) for x in n]

   print(num)


Output:



   n = [-2, -8, 1, -10, 40]


   num = ["{1:0{0}d}".format(2 if x >= 0 else 3, x) for x in n]

   print(num)


#  单独替换字符串中的第一个字符



   str1 = "caars caars caars"

   str2 = str1.replace('aa', 'a', 1)


   print(str2)


Output:



   cars caars caars


#  连接固定字符串和变量



   variable = 'Hello'

   print('This is the Test File ' + variable)


   variable = '10'

   print('This is the Test File ' + str(variable))


Output:



   This is the Test File Hello

   This is the Test File 10


#  将字符串拆分为多个字符串



   s = 'str1, str2, str3, str4'

   l = s.split(', ')


   print(l)


Output:



   ['str1', 'str2', 'str3', 'str4']


#  在 Python 中将字符串大写



   x = "canada japan australia"


   x = x[:1].upper() + x[1:]

   print(x)


   x= x.capitalize()

   print(x)


   x= x.title()

   print(x)


Output:



   Canada japan australia

   Canada japan australia

   Canada Japan Australia


#  将字节字符串拆分为单独的字节



   data = b'\x00\x00\x00\x00\x00\x00'


   info = [data[i:i + 2] for i in range(0, len(data), 2)]

   print(info)


Output:



   [b'\x00\x00', b'\x00\x00', b'\x00\x00']


#  用空格填写 Python 字符串



   string = 'Hi'.ljust(10)

   print(string)


   string = 'Hi'.rjust(10)

   print(string)


   string = '{0: ^20}'.format('Hi')

   print(string)


   string = '{message: >16}'.format(message='Hi')

   print(string)


   string = '{message: <16}'.format(message='Hi')

   print(string)


   string = '{message: <{width}}'.format(message='Hi', width=20)

   print(string)


Output:



   Hi        

           Hi

            Hi          

                 Hi

   Hi              

   Hi


#  比较两个字符串并检查它们共有多少个字符



   from collections import Counter


   def shared_chars(s1, s2):

       return sum((Counter(s1) & Counter(s2)).values())


   print(shared_chars('car', 'carts'))


Output:

#  在 Python 中的数字和字符串之间添加空格



   import re


   s = "ABC24.00XYZ58.28PQR"

   s = re.sub("[A-Za-z]+", lambda group: " " + group[0] + " ", s)

   print(s.strip())


Output:



   ABC 24.00 XYZ 58.28 PQR


#  如何在 Python 中去除空格



   s = '   canada  '

   print(s.rstrip())  # For whitespace on the right side use rstrip.

   print(s.lstrip())  # For whitespace on the left side lstrip.

   print(s.strip())  # For whitespace from both side.



   s = ' \t  canada  '

   print(s.strip('\t'))  # This will strip any space, \t, \n, or \r characters from the left-hand side, right-hand side, or both sides of the string.


Output:



      canada

   canada  

   canada

             canada


#  字符串中最后一次出现的分隔符处拆分字符串



   s = 'canada-japan-australia-uae-india'

   l = s.rsplit('-', 1)[1]

   print(l)


Output:



   india


#  在Python中将字符串的最后一个字母大写



   string = "canada"


   result = string[:-1] + string[-1].upper()

   print(result)


   result = string[::-1].title()[::-1]

   print(result)


Output:



   canadA

   canadA


#  使用指定字符居中对齐字符串



   txt = "canada"


   x = txt.center(20)


   print(x)


Output:



          canada


#  格式字符串中动态计算的零填充



   x = 4

   w = 5

   print('{number:0{width}d}'.format(width=w, number=x))


Output:

#  在 Python 中使用 string.replace()



   a = "This is the island of istanbul"

   print (a.replace("is" , "was", 1))

   print (a.replace("is" , "was", 2))

   print (a.replace("is" , "was"))


Output:



   Thwas is the island of istanbul

   Thwas was the island of istanbul

   Thwas was the wasland of wastanbul


#  在 Python 中获取字符的位置



   test = 'Position of a character'

   print(test.find('of'))

   print(test.find('a'))


Output:

#  Python字符串替换多次出现



   s = "The quick brown fox jumps over the lazy dog"

   for r in (("brown", "red"), ("lazy", "quick")):

       s = s.replace(*r)


   print(s)


Output:



   The quick red fox jumps over the quick dog


#  在索引后找到第一次出现的字符



   string = 'This + is + a + string'

   x = string.find('+', 4)

   print(x)


   x = string.find('+', 10)

   print(x)


Output:

#  在 Python 中将字符串更改为大写



   x = 'canada'

   x = x.upper()


   print(x)


Output:



   CANADA


#  在 Python 中拆分具有多个分隔符的字符串



   import re


   l = re.split(r'[$-]+', 'canada$-india$-japan$-uae')

   print(l)


Output:



   ['canada', 'india', 'japan', 'uae']


#  在 Python 中获取字符串的大小



   string1 = "Canada"

   print(len(string1))


   string2 = "  Canada"

   print(len(string2))


   string3 = "Canada  "

   print(len(string3))


Output:

#  Python中的字符串比较 is vs ==



   x = 'canada'

   y = ''.join(['ca', 'na', 'da'])

   print(x == y)

   print(x is y)


   x = [1, 2, 3]

   y = [1, 2, 3]

   print(x == y)

   print(x is y)


   z = y

   print(z is y)


Output:



   True

   False

   True

   False

   True


#  每当数字与非数字相邻时,Python 正则表达式都会添加空格



   import re


   text = ['123', 'abc', '4x5x6', '7.2volt', '60BTU',

           '20v', '4*5', '24in', 'google.com-1.2', '1.2.3']


   pattern = r'(-?[0-9]+\.?[0-9]*)'

   for data in text:

       print(repr(data), repr(

           ' '.join(segment for segment in re.split(pattern, data) if segment)))


Output:



   '123' '123'

   'abc' 'abc'

   '4x5x6' '4 x 5 x 6'

   '7.2volt' '7.2 volt'

   '60BTU' '60 BTU'

   '20v' '20 v'

   '4*5' '4 * 5'

   '24in' '24 in'

   'google.com-1.2' 'google.com -1.2'

   '1.2.3' '1.2 . 3'


#  在 Python 中仅按第一个空格拆分字符串



   s = 'canada japan australia'

   l = s.split(' ', 1)

   print(l)


Output:



   ['canada', 'japan australia']


#  在Python中将字符串中的一些小写字母更改为大写



   indices = set([0, 7, 14, 18])


   s = "i love canada and japan"

   print("".join(c.upper() if i in indices else c for i, c in enumerate(s)))


Output:



   I love Canada And Japan


#  将字符串拆分为具有多个单词边界分隔符的单词



   import re


   thestring = "a,b,c d!e.f\ncanada\tjapan&germany"

   listitems = re.findall('\w+', thestring)


   for item in listitems:

       print(item)


Output:



   a

   b

   c

   d

   e

   f

   canada

   japan

   germany


#  检查一个字符串在 Python 中是否具有相同的字符



   str1 = 'caars'

   str2 = 'rats'

   str3 = 'racs'


   print(set(str1)==set(str2))

   print(set(str1)==set(str3))


Output:



   False

   True


#  在多个分隔符或指定字符上拆分字符串



   import re



   string_test = "Ethnic (279), Responses (3), 2016 Census - 25% Sample"

   print(re.findall(r"[\w']+", string_test))


   def split_by_char(s, seps):

       res = [s]

       for sep in seps:

           s, res = res, []

           for seq in s:

               res += seq.split(sep)

       return res


   print(split_by_char(string_test, [' ', '(', ')', ',']))


Output:



   ['Ethnic', '279', 'Responses', '3', '2016', 'Census', '25', 'Sample']


   ['Ethnic', '', '279', '', '', 'Responses', '', '3', '', '', '2016', 'Census', '-', '25%', 'Sample']


#  将一个字符串附加到另一个字符串



   # Example 1

   str1 = "Can"

   str2 = "ada"

   str3 = str1 + str2

   print(str3)


   # Example 2

   str4 = 'Ca'

   str4 += 'na'

   str4 += 'da'

   print(str4)


   # Example 3

   join_str = "".join((str1, str2))

   print(join_str)


   # Example 4

   str_add = str1.__add__(str2)

   print(str_add)


Output:



   Canada


   Canada


   Canada


   Canada


#  在 Python 中遍历字符串



   # Example 1

   test_str = "Canada"

   for i, c in enumerate(test_str):

           print(i, c)


   print("------------------------")


   # Example 2

   indx = 0

   while indx < len(test_str):

           print(indx, test_str[indx])

           indx += 1


   print("------------------------")

   # Example 3

   for char in test_str:

           print(char)


Output:



   0 C


   1 a


   2 n


   .......


   d


   a


#  从 Python 中的字符串中去除标点符号



   import string

   import re


   # Example 1

   s = "Ethnic (279), Responses (3), 2016 Census - 25% Sample"

   out = re.sub(r'[^\w\s]', '', s)

   print(out)


   # Example 2

   s = "Ethnic (279), Responses (3), 2016 Census - 25% Sample"

   for p in string.punctuation:

           s = s.replace(p, "")

   print(s)


   # Example 3

   s = "Ethnic (279), Responses (3), 2016 Census - 25% Sample"

   out = re.sub('[%s]' % re.escape(string.punctuation), '', s)

   print(out)


Output:



   Ethnic 279 Responses 3 2016 Census  25 Sample


   Ethnic 279 Responses 3 2016 Census  25 Sample


   Ethnic 279 Responses 3 2016 Census  25 Sample


#  将列表转换为字符串



   list_exp = ['Ca', 'na', 'da']

   print(type(list_exp))


   # Example 1

   str_exp1 = ''.join(list_exp)

   print(type(str_exp1))

   print(str_exp1)


   # Example 2

   str_exp2 = ''.join(str(e) for e in list_exp)

   print(type(str_exp2))

   print(str_exp2)


   # Example 3

   str_exp3 = ''.join(map(str, list_exp))

   print(type(str_exp2))

   print(str_exp2)


Output:



   class 'list'


   class 'str'


   Canada


   class 'str'


   Canada


   class 'str'


   Canada


#  将 JSON 转换为字符串



   import json



   # list with dict a simple Json format

   json_exp = \

       [{"id": "12", "name": "Mark"}, {"id": "13", "name": "Rock", "date": None}]

   print(type(json_exp))


   str_conv = json.dumps(json_exp)  # string

   print(type(str_conv))

   print(str_conv)


Output:



   class 'list'


   class 'str'


   [{"id": "12", "name": "Mark"}, {"id": "13", "name": "Rock", "date": null}]


#  对字符串列表进行排序



   # Example 1

   str_list = ["Japan", "Canada", "Australia"]

   print(str_list)

   str_list.sort()

   print(str_list)


   # Example 2

   str_list = ["Japan", "Canada", "Australia"]

   for x in sorted(str_list):

       print(x)


   # Example 3

   str_var = "Canada"

   strlist = sorted(str_var)

   print(strlist)


Output:



   ['Japan', 'Canada', 'Australia']


   ['Australia', 'Canada', 'Japan']


   Australia


   Canada


   Japan


   ['C', 'a', 'a', 'a', 'd', 'n']


#  在 Python 中检查字符串是否以 XXXX 开头



   import re



   exp_str = "Python Programming"


   # Example 1

   if re.match(r'^Python', exp_str):

       print(True)

   else:

       print(False)


   # Example 2

   result = exp_str.startswith("Python")

   print(result)


Output:



   True


   True


#  在 Python 中将两个字符串网格或交错在一起的不同方法



   str1 = "AAAA"

   str2 = "BBBBBBBBB"


   # Example 1

   mesh = "".join(i + j for i, j in zip(str1, str2))

   print("Example 1:", mesh)


   # Example 2

   min_len = min(len(str1), len(str2))

   mesh = [''] * min_len * 2

   mesh[::2] = str1[:min_len]

   mesh[1::2] = str2[:min_len]

   print("Example 2:", ''.join(mesh))


   # Example 3

   mesh = ''.join(''.join(item) for item in zip(str1, str2))

   print("Example 3:", mesh)


   # Example 4

   min_len = min(len(str1), len(str2))

   mesh = [''] * min_len * 2

   mesh[::2] = str1[:min_len]

   mesh[1::2] = str2[:min_len]

   mesh += str1[min_len:] + str2[min_len:]

   print("Example 4:", ''.join(mesh))


Output:



   Example 1: ABABABAB


   Example 2: ABABABAB


   Example 3: ABABABAB


   Example 4: ABABABABBBBBB

尊重原创版权: <https://www.gewuweb.com/sitemap.html>

网友评论