python 字符串和列表内置方法

python 字符串和列表内置方法

字符串的其他内置方法

1.移除字符串首尾的指定字符

strip()移除首尾指定字符
lstrip()移除左边指定字符
rstrip()移除右边指定字符
#代码示例:
s1 = '----tony----'
print(s1.strip('-'))	#移除首尾指定字符

print(s1.lstrip('-'))	#移除左边指定字符

print(s1.rstrip('-'))   #移除右边指定字符

#输出结果:
tony
tony----
----tony

2.大小写转换

lower() 字符转化为小写
upper() 字符转化为大写
islower() isupper() 判断字符是否纯小/大写
#代码示例:
    s2 = 'DlRnN231Fb'
    print(s2.lower())   #dlrnn231fb  字符全转化小写
    
    print(s2.upper())	#DLRNN231FB  字符全转化为大写
    
    print(s2.islower()) #False		判断字符是否纯小写	 
    
    print(s2.isupper()) #False		判断字符是否纯大写
    
    '''图片验证码实现大小写'''
    code = 'JaSOn6'
    print('这是返回给用户的图片验证码:%s' % code)
    user_code = input('请输入验证码>>>:').strip()
    if code.lower() == user_code.lower():  # 验证码忽略大小写 只需要统一转大写或者小写即可
        print('验证码正确')

3.判断字符串的开头或者结尾是否是指定的字符

startswith()判断开头字符是否符合
endswith()判断结尾字符是否符合
#代码示例:
s3 = 'jason kevin jason tony'
print(s3.startswith('j'))	# True	判断开头字符是否J

print(s3.startswith('jason')) # True	判断开头字符是否Jason

print(s3.endswith('j')) # True	判断结尾字符是否J

print(s3.endswith('tony')) # True 判断结尾字符是否tony

4.字符串格式化输出

方式1 占位符:%s %d

方式2 format方法>>>:四种玩法
	
    #玩法1:跟占位符一致  使用的{}占位
print('my name is {} my age is {}'.format('jason', 18))

	#玩法2:根据索引取值  可以反复使用
print('my name is {0} {0} {0} my age is {0} {1}'.format('jason', 18))

	#玩法3:根据指名道姓的方式取值
print('my name is {name} {name} my age is {age} {pwd}'.format(name='jason', age=18, pwd=123))
	
    #玩法4:直接使用已经出现过的变量
name = 'jason'
age = 18
print('my name is {name} my age is {age} {name} {age}')

5.拼接字符串

join() '''相当于是将括号内的元素进行for循环'''
# join的元素必须都是字符串才可以 否则报错

#代码示例:
s1 = '床前明月光疑是地上霜'

print('|'.join(s1))	#床|前|明|月|光|疑|是|地|上|霜

print('$'.join(['jason', 'kevin', 'justin', 'tony']))  

# jason$kevin$justin$tony

''' join的元素必须都是字符串才可以 否则报错'''

6.替换字符串中指定字符

replace() 
#代码示例:
s1 = '床前明月光疑是地上霜床床'

print(s1.replace('床','di')) # 默认一次性替换所有

print(s1.replace('床','s',2)) # 还可以通过数字控制替换的个数 从左往右

'''很多文本编辑器里面的替换功能 就可以使用replace完成'''

7.判断字符串中是否是纯数字

isdigit()
#代码示例:
s7 = 'jason123'
print(s7.isdigit())  # False

print('123'.isdigit())  # True

print('123.21'.isdigit())  # False

score = input('score>>>:')
if score.isdigit():
     score = int(score)
else:
     print('格式错误')

8.查找指定字符对应的索引值

Python中查找字符串指定字符的常用方法有find()、index()
str = 'abcd'

print(str.find('c')) #输出即为查找指定字符的索引值 

print(str.index('c')) #输出即为查找指定字符的索引值

当指定字符在该字符串中不存在时,find输出为-1.index则会报错,如下:

str = 'abcd'

print(str.find('f')) # 输出-1 意思是没有 找不到

print(str.index('f')) #找不到会报错 不推荐使用

9.文本位置改变

name = 'tony'
print(name.center(10, '-'))  #---tony---

print(name.ljust(10, '*'))   #tony******

print(name.rjust(10, '$'))   #$$$$$$tony

print(name.zfill(20))  #0000000000000000tony

10.字符串中特殊符号

#斜杠与一些英文字母的组合会产生特殊的含义

 print('ja\tson\nke\avin') 
    ja	son
    kevin

    '''如果想取消它们的特殊含义 可以在字符串的前面加一个字母r'''

 print(r'ja\tson\nke\avin') 
	
    ja\tson\nke\avin

11. Python capitalize()方法

Python capitalize() 将字符串的第一个字母变成大写 其他字母变小写

#代码示例:
message = 'hello EVeryone nice to meet you!'
print(message.capitalize())

	Hello everyone nice to meet you!

12. Python swapcase()方法

将大写字母转换为小写字母,小写字母会转换为大写字母
#代码示例:

str = "RUNOOB!!!";
print ( str.swapcase() ); #runoob!!!
 
str = "runoob!!!"; 
print ( str.swapcase() ); #RUNOOB!!!
 
str = "abCDE--RuNOob!!!";
print ( str.swapcase() ); #ABcde--rUnoOB!!!

  1. Python title()方法
所有单词都是以大写开始,其余字母均为小写
#代码示例:
    msg = 'dear my friend i miss you very much'

    print(msg.title())

# Dear My Friend I Miss You Very Much

列表内置方法

# 1.类型转换
	 print(list(11))  # 不行
     
     print(list(11.11))  # 不行
     
     print(list('jason'))  # ['j', 'a', 's', 'o', 'n']
     
     print(list({'name': 'jason', 'pwd': 123}))  # ['name', 'pwd']
     print(list((11,22,33,44,55)))  # [11, 22, 33, 44, 55]
     
     print(list({1, 2, 3, 4, 5}))  # [1, 2, 3, 4, 5]
     
     print(list(True))
    """
    list可以转换支持for循环的数据类型
        可以被for循环的数据类型
            字符串 列表 字典 元组 集合
    """

列表的基本操作

 name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
 1.索引取值
    
     print(name_list[0])
     print(name_list[-1])
 
 2.切片操作

    print(name_list[1:4])  # ['kevin', 'tony', 'tom']
	
    print(name_list[-4:-1])  # ['kevin', 'tony', 'tom']
	
    print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']
  
 3.间隔
    
    print(name_list[0:4:1])  # ['jason', 'kevin', 'tony', 'tom']
    
    print(name_list[0:4:2])  # ['jason', 'tony']

    print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']
    
 4.统计列表中的个数 len()

	print(len(name_list))  # 5
  
 5.成员运算 #最小判断单位是元素不是元素里面的单个字符
     
        print('j' in name_list)  # False
     
    	print('jason' in name_list)  # True
  

列表中添加元素的方式

1.尾部追加'单个'元素

append() 方法用于在列表末尾添加新的对象
#代码示例:
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']

name_list.append('小李')
print(name_list)
#['jason', 'kevin', 'tony', 'tom', 'jerry', '小李']

name_list.append([11, 22, 33, 44])
print(name_list)
['jason', 'kevin', 'tony', 'tom', 'jerry', [11, 22, 33, 44]]

2.指定位置插入'单个'元素

Python 列表 insert() 方法将指定对象插入到列表中的指定位置

#代码示例:
name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
name_list.insert(0, 123)
name_list.insert(1, [11, 22, 33])
print(name_list)

[123, [11, 22, 33], 'jason', 'kevin', 'tony', 'tom', 'jerry']

3.合并列表

extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
 #代码示例:
    
 name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']   
 name_list.extend([11, 22, 33, 44, 55])
 print(name_list)

['jason', 'kevin', 'tony', 'tom', 'jerry', 11, 22, 33, 44, 55]

	'''extend其实可以看成是for循环+append'''
    
    #代码示例:
    name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    for i in [11, 22, 33, 44, 55]:
        name_list.append(i)
    print(name_list)

4.删除元素

1.使用del语句删除
#代码示例:

    lis = [1, 2, 3, 'a', 'b']
    del lis[0]
    print(lis)	#[2, 3, 'a', 'b']

    '删除指定元素'
    lis = [1, 2, 3, 'a', 'b']
    del lis[3]
    print(lis)  #[1, 2, 3, 'b']
    
2.使用pop()方法删除

'''pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。'''

#代码示例:
   
    lis = [1, 2, 3, 'a', 'b']
    b= lis.pop(3)
    print(lis)	#[1, 2, 3, 'b']
    print(b)	# a 
 
3.根据值删除元素 remove()
'不知道元素在列表中的位置,但知道元素的值,就可以用remove()方法删除元素'

#代码示例:
    lis = [1, 2, 3, 'a', 'b']
    lis.remove(3)
    print(lis)	# [1, 2, 'a', 'b']
    
'remove()方法只删除第一个指定的值 可以用循环来删除所有的3'

#代码示例:
    lis = [1, 2, 3, 'a', 'b', 3]
    while 3 in lis:
        lis.remove(3)
    print(lis) # [1, 2, 'a', 'b']

5.修改列表元素

1.修改单个元素

#代码示例:
nums = [40, 36, 89, 2, 36, 100, 7]
nums[2] = -26  #使用正数索引
nums[-3] = -66.2  #使用负数索引
print(nums) #	[40, 36, -26, 2, -66.2, 100, 7]

2.修改一组元素

#代码示例:
nums = [40, 36, 89, 2, 36, 100, 7]
nums[1: 4] = [45.25, -77, -52.5]
print(nums) #	[40, 45.25, -77, -52.5, 36, 100, 7]

'使用切片语法时也可以指定步长(step 参数),但这个时候就要求所赋值的新元素的个数与原有元素的个数相同'
nums = [40, 36, 89, 2, 36, 100, 7]
#步长为2,为第1、3、5个元素赋值
nums[1: 6: 2] = [0.025, -99, 20.5]
print(nums) #	[40, 0.025, 89, -99, 36, 20.5, 7]

'如果使用字符串赋值,Python 会自动把字符串转换成序列,其中的每个字符都是一个元素'

s = list("Hello")
s[2:4] = "XYZ"
print(s) #	['H', 'e', 'X', 'Y', 'Z', 'o']

6.列表排序

sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

升序:sort()
降序:sort(reverse=True)

#代码示例:
	ss = [44, 77, 99, 11, 22, 33, 88, 66]

ss.sort()  # 默认是升序
print(ss)  # [11, 22, 33, 44, 66, 77, 88, 99]

ss.sort(reverse=True)  # 降序
print(ss)  # [99, 88, 77, 66, 44, 33, 22, 11]

7.列表翻转

 ss = [44, 77, 99, 11, 22, 33, 88, 66]
 ss.reverse()  # 前后翻转
 print(ss) #	[66, 88, 33, 22, 11, 99, 77, 44]

8.比较运算

s1 = [11, 22, 33]
s2 = [1, 2, 3, 4, 5, 6, 7, 8]
print(s1 > s2)  # True

"""列表在做比较的时候 其实比的是对应索引位置上的元素"""
s1 = ['A', 'B', 'C']  # A>>>65
s2 = ['a']  # a>>>97
print(s1 > s2)  # False

ss = [44, 77, 99, 11, 22, 33, 88, 66]
print(ss.index(99)) 

9.统计列表中某个元素出现的次数

l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
 print(l1.count(11))  # 统计元素11出现的次数

    l1.clear()  # 清空列表

可变类型与不可变类型

可变型:字符串 布尔值 浮点数 列表 字典
不可变类型:整数  浮点数 元组

#代码示例:
s1 = '$$$jason$$$'
 print(s1.strip('$'))  # jason  本身并没有修改 是产生了新的结果
 print(s1)  # $$$jason$$$

 s2 = [1, 2, 3]
 print(s2.extend([11, 22, 33, 44, 55]))  # None 空
 print(s2)  # [1, 2, 3, 11, 22, 33, 44, 55]
"""
可变类型与不可变类型
    可变类型     列表
        值改变 内存地址不变 修改的是本身
    不可变类型   字符串
        值改变 内存地址肯定变 修改过程产生了新的值
如何查看变量的'内存地址'
"""
 s2 = [1, 2, 3]
 print(id(s2))  # 2171184953160
 
 s2.append(11111111)
 print(id(s2))  # 2171184953160


队列与堆栈

堆栈:
堆栈是一个后进先出的数据结构,
其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出

队列
队列是一种先进先出的数据类型,
它的跟踪原理类似于在超市收银处排队,先排队先结账

#代码示例:
    new_list = []
    #先进
    new_list.append(111)
    new_list.append(222)
    new_list.append(333)
    #先出
    for i in new_list:
        print(i)
    print(new_list.pop(0))
    print(new_list.pop(0))
    print(new_list.pop(0))
    
    # 堆栈
    new_list = []
    # 先进
    new_list.append(111)
    new_list.append(222)
    new_list.append(333)
    # 后出
    print(new_list.pop())
    print(new_list.pop())
    print(new_list.pop())

posted @ 2022-03-09 20:24  洛阳城门听风雨  阅读(85)  评论(0)    收藏  举报