Python 中的str、list和dict的常用知识点

str、list和dict都是python中常用的几种数据类型

 

一、str

str = 'python'
# print(a:b:c) #从a开始,b结束,步长是c
print(str[0])  # p
print(str[2])  # t
print(str[0:0])  # 空
print(str[1:4])  # 返回序列s中从s[a]到s[b-1]的片段 yth
print(str[-1])  # n
print(str[::-1])  # nohtyp
print(str * 2)  # pythonpython
print(str+'a')#pythona

  str.find(...)  返回子串的位置

str = 'python'
print(str.find('tho'))  # 2
print(str.find('th'))  # 2

  find的用法和index的用法一样,index('str1',int),int可以不写,查到第几个str1。

当str1 不存在的时候,index()返回一个错误,find返回一个-1

  str.replace(a,b)

str = 'python'
print(str.replace('y','s'))#psthon

2、str转成list形式

str_0   = "abc"
list_1 = list(str_0)
print("字符串转列表:", list_1, type(list_1))
#字符串转列表: ['a', 'b', 'c'] <class 'list'>

 

二、list

 

       del   del语句后面加的是list[index],不是值也不是索引

  ls.append()  返回值是None

  ls.count(...)  计某一值出现的次数

  ls.extend(another_ls)  将两个列表合并

  ls.index(value)  获取某个值的索引

  ls.insert(index,value)  在某个地方插入值

  ls.pop()  不加参数默认pop掉最后一个元素并且返回其值

  ls.remove(..)  去除从左到右第一个匹配到的值,如果没找到报错

  ls.reverse()  返回None,对ls本身反序

  ls.sort()  返回None,对ls本身排序

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
print(stus_list[0])  # 孙悟空
print(stus_list[0:0])  # []
print(stus_list[1:3])  # ['猪八戒', '沙和尚']
print(stus_list[::-1])  # ['白骨精', '唐僧', '沙和尚', '猪八戒', '孙悟空']
print(stus_list * 2)# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', '孙悟空', '猪八戒', '沙        和尚', '唐僧', '白骨精']


 

 

extend与append

 

stus_list.append('观音菩萨')  # 追加
# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', '观音菩萨']
print(stus_list)

stus_list.extend(['金角', '银角'])  # 拓展
# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', '金角', '银角']
print(stus_list)

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
stus_list.extend('python')  # 将字符串添加到list
# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', 'p', 'y', 't', 'h', 'o', 'n']
print(stus_list)

stus_list.extend({"k1": "v1", "k2": "v2"}) # 添加字典
# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', 'k1', 'k2']
print(stus_list)

 

  注:扩展extend与追加append的区别:

               extend为将数据类型的元素分解添加至列表内.

               append为添加将元素作为一个整体添加.

#['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', 'hello', 'world']
stus_list.extend(["hello","world"])
# ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', ['hello', 'world']]
stus_list.append(["hello", "world"])

 

元素的插入insert

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
stus_list.insert(1, 'python')#索引从0开始,即第二个
# ['孙悟空', 'python', '猪八戒', '沙和尚', '唐僧', '白骨精']
print(stus_list)
pop()--取出,可将取出的值作为字符串赋予另外一个变量,即有返回值
stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
p_list = stus_list.pop(1)
print(stus_list)  # ['孙悟空', '沙和尚', '唐僧', '白骨精']
print(p_list, type(p_list))  # 猪八戒 <class 'str'>

remove()-->移除、del -->删除

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
del stus_list[1]  # ['孙悟空', '沙和尚', '唐僧', '白骨精']
stus_list.remove("孙悟空")  # ['猪八戒', '沙和尚', '唐僧', '白骨精']
print(stus_list)

sorted()-->排序,默认正序,加入reverse =True,则表示倒序,不做解释了

 

 

list转换成str

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
str1 = "".join(stus_list)  # 孙悟空猪八戒沙和尚唐僧白骨精
print(str1)
str2 = str(stus_list)  # ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精'] <class 'str'>
print(str2, type(str2))

list转成dict

stus_list = ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精']
stus_list2 = ['a', 'b', 'c', 'd', 'e']
d = dict(zip(stus_list, stus_list2))
# {'孙悟空': 'a', '猪八戒': 'b', '沙和尚': 'c', '唐僧': 'd', '白骨精': 'e'} <class 'dict'>
print(d, type(d))

还有就是用循环转换,这里不做解释了。

 

三、dict

字典的遍历

csdn_dict = {
    "name": "阳阳",
    "age": 22,
    "email": "1943374299@qq.com"
}
# 键的遍历
for k in csdn_dict:
    print(k)
# name
# # age
# # email
print(csdn_dict.keys())
# dict_keys(['name', 'age', 'email'])
print(csdn_dict.values())
# dict_values(['阳阳', 22, '1943374299@qq.com'])
print(csdn_dict.items())
# dict_items([('name', '阳阳'), ('age', 22), ('email', '1943374299@qq.com')])

 

dict转换成list

str3 = str(csdn_dict)
# {'name': '阳阳', 'age': 22, 'email': '1943374299@qq.com'} <class 'str'>
print(str3, type(str3))

dict转化成list

list_key = list(csdn_dict)  # keys转换成list
# ['name', 'age', 'email'] <class 'list'>
print(list_key, type(list_key))

list_value=list(csdn_dict.values())
#['阳阳', 22, '1943374299@qq.com'] <class 'list'>
print(list_value,type(list_value))

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值