列表,字典内置方法

1 字符串内置方法(了解)

1.1 字符串的查找 字符串内部的字符

【1】find方法

name = "hello baby"
# 默认是从左向右找并且返回当前字符在字符串内部的索引坐标
print(name.find("a"))  # 7

name = "hello baby"
# 默认只能找一次,找到就不找了
print(name.find("b"))  #6

name = "hello baby"
 #可以指定寻找的区间,在区间内寻找字符
print(name.find("b",7,-1)) # 8


# 可以指定寻找的方向 从右向左找
name = "hello baby"
print(name.rfind("b")) # 8

# 找不存在的字符不会报错而是返回了 -1
name = "hello baby"
print(name.rfind("n"))  # -1

【2】index方法

name = "hello baby"
# index 查找不存在的字符就会报错
print(name.index("n")) # 报错

name = "hello baby"
#默认从左向右并且只查找一次
print(name.index("b")) #6

name = "hello baby"
# 控制查找的方向,从右向左找
print(name.rindex("b")) # 8

name = "hello baby"
# 可以指定寻找的区间
print(name.rindex("b",7,-1))

1.2 计算当前字符在字符串中出现的次数

name = "hello baby"
# 计算当前l在字符串中的出现的次数
print(name.count("l")) #2

name = "hello emotion entuer"
# 最左侧的e的索引
print(name.find("e")) #1
# 最右侧e的索引位置
print(name.rfind("e")) #18

name = "hello mation entuer"
# 找中间的 e 的索引位置
print(name.rfind("e",name.find("e")+1,name.rfind("e"))) #13

1.3 填充字符串

【1】填充两侧

name = "baby"

# (填充的长度[算上原本字符串长度填充后的长度],填充的字符)
# 如果是偶数则两侧填充的长度一致
print(name.center(len(name)+2,'$'))  #$baby$
# 如果是奇数,左少右多
name = "happy"
print(name.center(len(name)+5,'*'))  #**happy***

【2】只填充右侧 l 右对齐

name = "happy"
print(name.ljust(len(name)+5,'*')) #happy*****

【3】只填充左侧 r 左对齐

name = "happy"
print(name.rjust(len(name)+5,'*'))  #*****happy

【4】补充字符串不够的长度用 0 补齐

name = "happy"
print(name.zfill(len(name)+5)) #00000happy

1.4 制表符

# 默认代表一个空格
print(len('happy hello'))  # 11
name = 'dream \thello'

print(name)  #dream 	hello
print(len(name)) #12

1.5 首字母大写

sentence = 'my name is dear'
# 【1】一个句子的首字母大写
print(sentence.capitalize()) #My name is dear
# 【2】一个句子中的每一个单词的首字母大写
print(sentence.title())  #My Name Is Dear

1.6 单词大小写翻转

sentence = 'Dear'
print(sentence.swapcase())  #dEAR

1.7 判断字符串类型

name = 'Happy123'
name_one = 'Happy'
name_two = 'Happy&'
print(name.isalnum())    # 字符串中既可以包含数字也可以包含字母,True
print(name_one.isalpha())    # 字符串中只包含字母,True
print(name_two.isidentifier())  # 字符串是否是合法标识符,False
print(name.islower())    # 字符串是否是纯小写,False
print(name.isupper())    # 字符串是否是纯大写,False
print(name.isspace())    # 字符串是否全是空格,False
print(name.istitle())    # 字符串中的单词首字母是否都是大写,True

2 列表的内置方法

【一】列表

name_list = ['pai', 'hope']

【二】必须记住的内置方法

只要可迭代都能转

【1】类型强制转换

(1)字符串

可以,并且转换后的列表是字符串的每一个字符

 name = 'pai'
 print(list(name)) #['p', 'a', 'i']

(2)元组

可以,转换后的列表中的元素类型和转换之前一致

num_tuple = (1, 2, 3, 4)
print(list(num_tuple))  #[1, 2, 3, 4]

(3)字典

可以,转换后的列表中存储的元素是当前字典的键

name_dict = {'username': 'pai', 'password': '521'}
print(list(name_dict))  #['username', 'password']

(4)集合

可以,并且是基于集合去重特性后转换出,如果原来的会继承集合乱序的特性

num_set = {1, 2, 3, 6, 4,6, 6, 6}
print(list(num_set))  #[1, 2, 3, 4, 6]

(5)range关键字

也可以转换为列表,并且元素是指定区间内的每一个元素

print(list(range(0, 5))) #[0, 1, 2, 3, 4]

(6)数字不可以

数字包含了整数和浮点数,所以整数和浮点数都不可以

print(list(1))

(7)布尔也不可以

print(list(True))

【2】支持索引取值

如果取得索引大于总的数据长度救护报错
num_list = [1, 2, 3]
print(num_list[4]) #Error

【3】切片

也是顾头不顾尾

 num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
 print(num_list[0:5:2]) #[1, 3, 5]

【4】计算列表内的元素个数用 len

【5】成员运算

num_list = ['0', 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(1 in num_list)  #True
print(0 in num_list)  #False

【6】列表操作 增,删,查,改

(1)增加
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# append ;
# 默认追加到最后 没有返回值 影响到的是原来的列表
num_list.append(77)
print(num_list)  #[1, 2, 3, 4, 5, 6, 7, 8, 9, 77]


# extend
# 可以追加多个元素 可迭代
num_list.extend([11, 22])  #[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22]
num_list.extend((22, 3))   #[1, 2, 3, 4, 5, 6, 7, 8, 9, 22, 3]
# 字符串虽然可以迭代但是不行
num_list.extend('happy')
print(num_list)  #[1, 2, 3, 4, 5, 6, 7, 8, 9, 'h', 'a', 'p', 'p', 'y']

# insert
# 可以按照索引位置插入元素
# 参数(索引位置,元素)
num_list.insert(0, 666)
print(num_list)  #[666, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(2)删除
# del 列表[索引]
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
del num_list[0]  #[2, 3, 4, 5, 6, 7, 8, 9]
# pop() ;弹出
# 可以接收返回值,并且返回值就是你删除的哪个元素
print(num_list.pop())
# 可以放索引位置
print(num_list.pop(0)) #1
print(num_list)  #[2, 3, 4, 5, 6, 7, 8, 9]
# remove : 必须放定值 没有返回值
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
num_list.remove(2)
print(num_list)  #[1, 3, 4, 5, 6, 7, 8, 9]

【7】颠倒元素

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 'happy']
print(num_list.reverse())
print(num_list)  #['happy', 9, 8, 7, 6, 5, 4, 3, 2, 1]

【8】对列表中的元素进行排序

num_list = [1, 4, 8, 7, 9, 6, 4, 2, 58, 3, 6, 94, 16, 4, 6, 5, 456, 454, 56, 45, 123132, 412313, 55]
print(num_list.sort())
print(num_list)
#[1, 2, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 9, 16, 45, 55, 56, 58, 94, 454, 456, 123132, 412313]
 # 将排序后的结果翻转
 print(num_list.sort(reverse=True))
 print(num_list)
    #[412313, 123132, 456, 454, 94, 58, 56, 55, 45, 16, 9, 8, 7, 6, 6, 6, 5, 4, 4, 4, 3, 2, 1]
    
# sorted函数 : (列表,翻转) 有返回值
num_new = sorted(num_list, reverse=True)
print(num_new)
#[412313, 123132, 456, 454, 94, 58, 56, 55, 45, 16, 9, 8, 7, 6, 6, 6, 5, 4, 4, 4, 3, 2, 1]

【9】遍历循环列表

for 直接遍历列表 遍历索引range
while 定义起始值 < 列表最大长度 按照索引取值

【10】列表的步长

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从头去到尾但是步长为2
print(num_list[::2]) #[1, 3, 5, 7, 9]
# 从头取到尾但是是倒着取
print(num_list[::-2]) #[9, 7, 5, 3, 1]
# 列表翻转
print(num_list[::-1]) #[9, 8, 7, 6, 5, 4, 3, 2, 1]

3 字典的内置方法

【一】字典

字典中的数据都是 k:V键值对,不支持索引取值 只能支持键值对取值

【二】内置方法

user_data = {'username': "pai", 'password': '521'}

【1】查
(1)[键] : 如果这个键不存在 就会报错
print(user_data['username']) #pai
(2).get(键) : 如果这个键不存在 不会报错并且返回的是 None
print(user_data.get('password'))  #521
print(user_data.get('age'))   #None
【2】增加
(1)字典[键]=值
# 这种方式添加的键值对。字典中存在该键对应的值,就会覆盖掉,如果不存在,会将键值对新增进去
user_data['age'] = 18
user_data['username'] = 'opp'
user_data['password'] = 666
print(user_data)  #{'username': 'opp', 'password': 666, 'age': 18}
(2)setdefault() :有返回值并且返回值是加进去的值
print(user_data.setdefault('hobby', 'music'))
print(user_data) 
#{'username': 'pai', 'password': '521', 'hobby': 'music'}
(3)update方法
# 第一种方案放一个新的字典
data_user = {
    'addr': "上海",
    "username": "pai"
}
user_data.update(data_user)
print(user_data)


user_data = {'username': "pai", 'password': '521'}
user_data['age'] = 18
user_data['username'] = 'opp'
user_data['password'] = 666
data_user = {
    'addr': "上海",
    "username": "pai"
}
user_data.update(data_user)
print(user_data)
#{'username': 'pai', 'password': 666, 'age': 18, 'addr': '上海'}


 第二种方案直接放关键字=值
user_data.update(age=999)
print(user_data)
#{'username': 'pai', 'password': 666, 'age': 999, 'addr': '上海'}
【3】删除
(1)del 删除字典[键]
del user_data['username']
print(user_data)  #{'password': 666, 'age': 999, 'addr': '上海'}
(2)pop(键) : 将字典中指定的键对应的值弹出
print(user_data.pop('addr'))  #上海
print(user_data) #{'username': 'pai', 'password': 666, 'age': 999}

(3)clear : 清空字典
 print(user_data.clear())   # None
print(user_data)         #{}
(4)popitem : 弹出键值对 默认弹最后的
print(user_data.popitem())    #('addr', '上海')
print(user_data)   #  {'username': 'pai', 'password': 666, 'age': 999}   

【3】计算元素个数

print(len(user_data))

【4】成员运算

字典中默认运算的是键

【5】键对

user_data = {'username': "pai", 'password': '521'}
print(user_data.keys())     #dict_keys(['username', 'password'])
print('password' in user_data.keys())  #True

【6】值对

user_data = {'username': "pai", 'password': '521'}
print(user_data.values())   #dict_values(['pai', '521'])
print('666' in user_data.values())  #False

【7】键值对

print(user_data.items())  
#dict_items([('username', 'pai'), ('password', '521')])

print('666' in user_data.values()) #False

for key, value in user_data.items():
    print(key, value)
# username pai
# password 521
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值