字符串列表元组比较

it2022-05-05  130

文章目录

相同点拼接重复索引、切片计数最大最小值遍历删除有序可重复定位(.index()) 不同点字符串大小写转换删搜索定位字符串条件判断字符串分割变换列表增加列表反转/排序

相同点

拼接

sr = '1' sr2 = '2' li = [1] li2 = [2] tp = (1,) tp2 = (2,) print(sr + sr2) print(li + li2) print(tp + tp2) 12 [1, 2] (1, 2)

重复

sr = '123' li = [1, 2, 3] tp = (1, 2, 3) print(sr * 3) print(li * 3) print(tp * 3) 123123123 [1, 2, 3, 1, 2, 3, 1, 2, 3] (1, 2, 3, 1, 2, 3, 1, 2, 3)

索引、切片

sr = '123' li = [1, 2, 3] tp = (1, 2, 3) print(sr[0], li[0], tp[0]) print(sr[0:2], li[0:2], tp[0:2]) 1 1 1 12 [1, 2] (1, 2)

计数

sr = 'dasdasd' li = ['d', 'a', 's', 'd', 'a', 's', 'd', 'aa'] tp = ('d', 'a', 's', 'd', 'a', 's', 'd', 'aa') print(sr.count('a')) # 返回整个字符串所有待查元素的总和 print(li.count('a')) # 列表与元组只能查找到与待查元素完全一致的元素,包含待查元素不能匹配 print(tp.count('a')) 2 2 2

最大最小值

sr = 'dasdasd' li = ['d', 'a', 's', 'd', 'a', 's', 'd', 'aa'] tp = ('d', 'a', 's', 'd', 'a', 's', 'd', 'aa') print(max(sr), min(sr)) print(max(li), min(li)) # 列表与元组中可能存在不同数据类型,不同数据类型不能比较 print(max(tp), min(tp)) s a s a s a

遍历

sr = 'dasdasd' # 元素遍历 for i in sr: print(i, end=' ') print() # 索引遍历 for i in range(len(sr)): print(sr[i], end=' ') print() # 枚举遍历enumerate for index, value in enumerate(sr): print((index, value), end=' ') d a s d a s d d a s d a s d (0, 'd') (1, 'a') (2, 's') (3, 'd') (4, 'a') (5, 's') (6, 'd') li = ['d', 'a', 's', 'd', 'a', 's', 'd', 'aa'] # 元素遍历 for i in li: print(i, end=' ') print() # 索引遍历 for i in range(len(li)): print(tp[i], end=' ') print() # 枚举遍历enumerate for index, value in enumerate(li): print((index, value), end=' ') d a s d a s d aa d a s d a s d aa (0, 'd') (1, 'a') (2, 's') (3, 'd') (4, 'a') (5, 's') (6, 'd') (7, 'aa') tp = ('d', 'a', 's', 'd', 'a', 's', 'd', 'aa') # 元素遍历 for i in tp: print(i, end=' ') print() # 索引遍历 for i in range(len(tp)): print(tp[i], end=' ') print() # 枚举enumerate for index, value in enumerate(tp): print((index, value), end=' ') d a s d a s d aa d a s d a s d aa (0, 'd') (1, 'a') (2, 's') (3, 'd') (4, 'a') (5, 's') (6, 'd') (7, 'aa')

删除

del直接删除

有序

字符串、元组、列表均为有序的

可重复

字符串、元组、列表均是可重复的

定位(.index())

详见下方搜索定位

不同点

字符串、元组不可更改,列表可更改

区别字符串列表元组大小写转换存在不存在不存在格式输出对齐.center() .ljust() .rjust() .zfill()不存在不存在删.strip() .lstrip() .rstrip.pop() .remove() .clear()不存在搜索定位.find() .index().index().index()条件判断.isalnum() .isalpha() .isdigit()不存在不存在制表符转化.expandtabs()不存在不存在分割变换.join() .split() .partition()不存在不存在增加不存在.append() .extend() .insert()不存在反转/排序不存在.reverse()/.sort()不存在改不存在按照索引直接修改不存在

字符串大小写转换

sr = "life is short, you NEED python." print(sr.lower())#转小写 print(sr.upper())#转大写 print(sr.swapcase())#大小写互换 print(sr.title())#转为标题的形式 print(sr.capitalize())#首字母大写 print(sr.casefold())#转小写,对德语等也有效 life is short, you need python. LIFE IS SHORT, YOU NEED PYTHON. LIFE IS SHORT, YOU need PYTHON. Life Is Short, You Need Python. Life is short, you need python. life is short, you need python.

# 字符串 # sr.strip()删除左右两边的指定字符 # sr.lstrip()删除左边的指定字符 # sr.rstrip()删除右边的指定字符 sr = "\n\t#####Life is short, you need python.#####\t\n" print(sr.strip())#不传递参数删除换行制表符等 print(sr.strip("#"))#无效,仅能从两边开始匹配 #####Life is short, you need python.##### #####Life is short, you need python.##### # 列表 .pop()# 如果不指定索引,默认删除最后一个,返回被删除的元素(出栈) li = ["a", "b", "c", "d", "e"] print(li.pop()) print(li) print(li.pop(2)) print(li) e ['a', 'b', 'c', 'd'] c ['a', 'b', 'd'] .remove()# 删除第一次遇到的指定元素,无返回值 li = ["a", "b", "c", "d", "e", "e"] print(li.remove("e")) print(li) None ['a', 'b', 'c', 'd', 'e'] .clear()# 清空列表的所有元素,无返回值 li = ["a", "b", "c", "d", "e"] print(li.clear()) print(li) None []

搜索定位

# 字符串搜索定位和替换 # sr.find(str,start,end)返回指定范围内的某个元素第一次出现的索引值,start,end为可选,查不到返回-1 # sr.index(str,start,end)返回指定范围内的某个元素第一次出现的索引值,start,end为可选,查不到报错 # sr.rindex(str,start,end)从右往左查找 # sr.replace([现有],[替换],num)将现有字符串替换成指定字符串,默认全部替换,第三个参数可规定替换个数 sr = "Life is short, you need python." print(sr.find('e')) print(sr.index('e')) print(sr.rindex('e')) print(sr.replace('I need','I use')) 3 3 21 Life is short, you need python. # 列表、元组 # .index() li = ['d', 'a', 's', 'd', 'a', 's', 'd', 'aa'] tp = ('d', 'a', 's', 'd', 'a', 's', 'd', 'aa') print(li.index('a')) print(li.index('a')) 1 1

字符串条件判断

# isalnum(),判断字符串由字母或者数字组成 # isalpha(),仅有字母 # isdigit(),仅有数字 a = "abc666def" b = "666" c = "abc" print(a.isalnum()) print(b.isdigit()) print(c.isalpha()) True True True

字符串分割变换

# .join(),将指定字符插入到元素之间,返回字符串 # sr.split('',num),以指定字符分割字符串,并去除该字符,可选参数分割指定个数的字符,返回列表 # sr.partition(),以指定字符分割字符串,并保留该字符,返回元组,只切割第一个字符 sr = "Life is short, you need python." print('+'.join(sr)) li = ["I ", "Love ", "Python."] print(''.join(li)) # 列表快速转换为字符串 print(sr.split('o')) print(sr.partition('o')) L+i+f+e+ +i+s+ +s+h+o+r+t+,+ +y+o+u+ +n+e+e+d+ +p+y+t+h+o+n+. I Love Python. ['Life is sh', 'rt, y', 'u need pyth', 'n.'] ('Life is sh', 'o', 'rt, you need python.')

列表增加

.append()# 所有元素作为整体添加 li = ["City", "liyue"] li1 = ["a", "b", "c", "d"] print(id(li)) li.append(li1) print((li, id(li))) li = ["a", "b"] print(id(li)) 3206680913864 (['City', 'liyue', ['a', 'b', 'c', 'd']], 3206680913864) 3206681332360 .extend()# 取出所有元素再依次添加 li = ["City", "liyue"] li1 = ["a", "b", "c", "d"] li.extend(li1) print(li) ['City', 'liyue', 'a', 'b', 'c', 'd'] .insert()# 按照索引添加 li = ["City", "liyue"] li1 = ["a", "b", "c", "d"] li.insert(1, li1) print(li) ['City', ['a', 'b', 'c', 'd'], 'liyue']

列表反转/排序

# .reverse()# 反转 # .sort(key=None, reverse=False)# 排序,若元素为序列,则依次取出每个序列的元素依次进行比较,字符串无法与列表比较 # 参数key=,指定可迭代对象中的一个元素进行排序 li = ["a", "b", "c", "d", "e"] li.reverse() print(li) li.sort() print(li) li.sort(reverse=True)# 参数reverse=True/False 反向/正向,默认为False print(li) ['e', 'd', 'c', 'b', 'a'] ['a', 'b', 'c', 'd', 'e'] ['e', 'd', 'c', 'b', 'a']

最新回复(0)