背景上一次小朋友们一起学习了 Python的列表与元组,它们具有以下的共同点: 这一次,我们来介绍 Python 中另外一个常用的结构:字符串,以及针对序列(列表、元组和字符串都可认为是序列)的常用内置函数。
代码实现1. 字符串 字符串的定义 print(5 + 8) # 13 print('5' + '8') # 58
print('let\'s go') # let's go print("let's go") # let's go print('C:\\now') # C:\now print("C:\\Program Files\\Intel\\Wifi\\Help") # C:\Program Files\Intel\Wifi\Help
转义字符print(r'C:\Program Files\Intel\Wifi\Help') # C:\Program Files\Intel\Wifi\Help
字符串的切片与拼接 str1 = 'I Love LsgoGroup' print(str1[:6]) # I Love print(str1[5]) # e print(str1[:6] + " 插入的字符串 " + str1[6:]) # I Love 插入的字符串 LsgoGroup
字符串的常用内置方法 str2 = 'xiaoxie' print(str2.capitalize()) # Xiaoxie
str2 = "DAXIExiaoxie" print(str2.lower()) # daxiexiaoxie print(str2.upper()) # DAXIEXIAOXIE print(str2.swapcase()) # daxieXIAOXIE
str2 = "DAXIExiaoxie" print(str2.count('xi')) # 2
endswith(suffix, beg=0, end=len(string)) 检查字符串是否以指定子字符串suffix 结束,如果是,返回 True,否则返回 False。如果beg 和end 指定值,则在指定范围内检查。
startswith(substr, beg=0,end=len(string)) 检查字符串是否以指定子字符串substr 开头,如果是,返回 True,否则返回 False。如果beg 和end 指定值,则在指定范围内检查。
str2 = "DAXIExiaoxie" print(str2.endswith('ie')) # True print(str2.endswith('xi')) # False print(str2.startswith('Da')) # False print(str2.startswith('DA')) # True
find(str, beg=0, end=len(string)) 检测str 是否包含在字符串中,如果指定范围beg 和end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。
rfind(str, beg=0,end=len(string)) 类似于find() 函数,不过是从右边开始查找。
str2 = "DAXIExiaoxie" print(str2.find('xi')) # 5 print(str2.find('ix')) # -1 print(str2.rfind('xi')) # 9
str3 = '12345' print(str3.isnumeric()) # True str3 += 'a' print(str3.isnumeric()) # False
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用fillchar (默认空格)填充至长度width 的新字符串。
rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用fillchar (默认空格)填充至长度width 的新字符串。
str4 = '1101' print(str4.ljust(8, '0')) # 11010000 print(str4.rjust(8, '0')) # 00001101
lstrip([chars]) 截掉字符串左边的空格或指定字符。
rstrip([chars]) 删除字符串末尾的空格或指定字符。
strip([chars]) 在字符串上执行lstrip() 和rstrip() 。
str5 = ' I Love LsgoGroup ' print(str5.lstrip()) # 'I Love LsgoGroup ' print(str5.lstrip().strip('I')) # ' Love LsgoGroup ' print(str5.rstrip()) # ' I Love LsgoGroup' print(str5.strip()) # 'I Love LsgoGroup' print(str5.strip().strip('p')) # 'I Love LsgoGrou'
partition(sub) 找到子字符串sub,把字符串分为一个三元组(pre_sub,sub,fol_sub) ,如果字符串中不包含sub则返回('原字符串','','') 。
rpartition(sub) 类似于partition() 方法,不过是从右边开始查找。
str5 = ' I Love LsgoGroup ' print(str5.strip().partition('o')) # ('I L', 'o', 've LsgoGroup') print(str5.strip().partition('m')) # ('I Love LsgoGroup', '', '') print(str5.strip().rpartition('o')) # ('I Love LsgoGr', 'o', 'up')
str5 = ' I Love LsgoGroup ' print(str5.strip().replace('I', 'We')) # We Love LsgoGroup
str5 = ' I Love LsgoGroup ' print(str5.strip().split()) # ['I', 'Love', 'LsgoGroup'] print(str5.strip().split('o')) # ['I L', 've Lsg', 'Gr', 'up']
str6 = 'I \n Love \n LsgoGroup' print(str6.splitlines()) # ['I ', ' Love ', ' LsgoGroup'] print(str6.splitlines(True)) # ['I \n', ' Love \n', ' LsgoGroup']
maketrans(intab, outtab) 创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
translate(table, deletechars="") 根据参数table 给出的表,转换字符串的字符,要过滤掉的字符放到deletechars 参数中。
str = 'this is string example....wow!!!' intab = 'aeiou' outtab = '12345' trantab = str.maketrans(intab, outtab) print(trantab) # {97: 49, 111: 52, 117: 53, 101: 50, 105: 51} print(str.translate(trantab)) # th3s 3s str3ng 2x1mpl2....w4w!!!
字符串格式化 str = "{0} Love {1}".format('I', 'Lsgogroup') # 位置参数 print(str) # I Love Lsgogroup
str = "{a} Love {b}".format(a='I', b='Lsgogroup') # 关键字参数 print(str) # I Love Lsgogroup
str = "{0} Love {b}".format('I', b='Lsgogroup') # 位置参数要在关键字参数之前 print(str) # I Love Lsgogroup
str = '{0:.2f}{1}'.format(27.658, 'GB') # 保留小数点后两位 print(str) # 27.66GB
字符串格式化符号print('%c' % 97) # a print('%c %c %c' % (97, 98, 99)) # a b c print('%d + %d = %d' % (4, 5, 9)) # 4 + 5 = 9 print("我叫 %s 今年 %d 岁!" % ('小明', 10)) # 我叫 小明 今年 10 岁! print('%o' % 10) # 12 print('%x' % 10) # a print('%X' % 10) # A print('%f' % 27.658) # 27.658000 print('%e' % 27.658) # 2.765800e+01 print('%E' % 27.658) # 2.765800E+01 print('%g' % 27.658) # 27.658
辅助命令print('%5.1f' % 27.658) # ' 27.7' print('%.2e' % 27.658) # 2.77e+01 print('%10d' % 10) # ' 10' print('%-10d' % 10) # '10 ' print('%+d' % 10) # +10 print('%#o' % 10) # 0o12 print('%#x' % 108) # 0x6c print('%010d' % 5) # 0000000005
2. 针对序列的内置函数 a = list() print(a) # []
b = 'I Love LsgoGroup' b = list(b) print(b) # ['I', ' ', 'L', 'o', 'v', 'e', ' ', 'L', 's', 'g', 'o', 'G', 'r', 'o', 'u', 'p']
c = (1, 1, 2, 3, 5, 8) c = list(c) print(c) # [1, 1, 2, 3, 5, 8]
a = tuple() print(a) # ()
b = 'I Love LsgoGroup' b = tuple(b) print(b) # ('I', ' ', 'L', 'o', 'v', 'e', ' ', 'L', 's', 'g', 'o', 'G', 'r', 'o', 'u', 'p')
c = [1, 1, 2, 3, 5, 8] c = tuple(c) print(c) # (1, 1, 2, 3, 5, 8)
a = 123 a = str(a) print(a) # 123
a = list() print(len(a)) # 0
b = ('I', ' ', 'L', 'o', 'v', 'e', ' ', 'L', 's', 'g', 'o', 'G', 'r', 'o', 'u', 'p') print(len(b)) # 16
c = 'I Love LsgoGroup' print(len(c)) # 16
print(max(1, 2, 3, 4, 5)) # 5 print(max([-8, 99, 3, 7, 83])) # 99 print(max('IloveLsgoGroup')) # v
print(min(1, 2, 3, 4, 5)) # 1 print(min([-8, 99, 3, 7, 83])) # -8 print(min('IloveLsgoGroup')) # G
print(sum([1, 3, 5, 7, 9])) # 25 print(sum([1, 3, 5, 7, 9], 10)) # 35 print(sum((1, 3, 5, 7, 9))) # 25 print(sum((1, 3, 5, 7, 9), 20)) # 45
numbers = [-8, 99, 3, 7, 83] print(sorted(numbers)) # [-8, 3, 7, 83, 99] print(sorted(numbers, reverse=True)) # [99, 83, 7, 3, -8]
numbers = [-8, 99, 3, 7, 83] a = list(reversed(numbers)) print(a) # [83, 7, 3, 99, -8]
seasons = ['Spring', 'Summer', 'Fall', 'Winter'] a = list(enumerate(seasons)) print(a) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] b = list(enumerate(seasons, 1)) print(b) # [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
for i, element in a: print('{0},{1}'.format(i, element))
a = [1, 2, 3] b = [4, 5, 6] c = [4, 5, 6, 7, 8] zipped = zip(a, b) print(list(zipped)) # [(1, 4), (2, 5), (3, 6)] zipped = zip(a, b) print(list(zipped)) # [(1, 4), (2, 5), (3, 6)]
总结到此为止,有关字符串和序列的内容就介绍完了。任何技能都是通过不断的刻意练习才能掌握的。小朋友们加油啊!
相关图文:
经过8年多的发展,LSGO软件技术团队在「地理信息系统」、「数据统计分析」、「计算机视觉」等领域积累了丰富的研发经验,也建立了人才培养的完备体系,由于自己准备在「量化交易」领域精进技能,如果大家对这个领域感兴趣可以与我联系,加入我们的量化学习群一起学习探讨。 在这个领域我已做了以下积累: 策略部分: 数据部分: 自动化交易部分:
|