python定义一个字典、存储雇员号和姓名_python学习笔记-(五)字符串&字典

本文介绍了Python中的字符串操作,如首字母大写、计数、居中、判断等,并详细讲解了字典的使用,包括字典的创建、获取、修改、删除元素,以及多级字典嵌套和循环遍历等操作。
摘要由CSDN通过智能技术生成

1.字符串操作

>>> name = ("my name is cc")#首字母大写

>>> print(name.capitalize())

My name is cc

>>> print(name.count('c'))#统计'c'的个数

2

>>>print(name.center(50,"-"))#输出50个字符,名字居中,两边补齐--

------------------my name is cc-------------------

>>> print(name.endswith("-"))#判断是否以"-"结尾

False

>>> name = ("my name is\t cc")

>>> print(name.expandtabs())#把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。

my name is cc

>>> print(name.isdigit())#判断是否为整数

False

>>> name = ("my")

>>> print(name.isidentifier())#判断是不是一个合法的标识符

True

>>> name = ('2my')

>>> print(name.isidentifier())

False

>>> name = ("my")

>>> print(name.islower())#是不是小写字符

True

>>> name = ("my")

>>> print(name.isnumeric())#判断是不是纯数字

False

>>> name = ("my")

>>> print(name.isspace()) #判断是不是空格

False

>>> name = ("My Name Is")

>>> print(name.istitle())#判断是不是title(首字母都大写)

True

>>> name = ('MY')

>>> print(name.isupper())#判断是否全是大写

True

join() 拼接字符串,可指定拼接字符串,如:+

>>> name = ('cc','mm','nn')

>>> print('+'.join(name))

cc+mm+nn

>>> name = ('cc')

>>> print(name.ljust(50,'*'))#输出50个字符,cc放在最左边,右边以*补齐

cc************************************************

>>> name = ('cc')

>>> print(name.rjust(50,'*'))#输出50个字符,cc放在最右边,左边以*补齐

************************************************cc

>>> name = ('MY')

>>> print(name.lower()) #小写

my

>>> name = ('my')

>>> print(name.upper()) #大写

MY

>>> name = (' yy ')

>>> print(name.strip())#自动去掉左右的回车和空格

yy

>>> print(name.lstrip())#自动去掉左边的空格和回车

yy

>>> print(name.rstrip())#自动去掉右边的空格和回车

yy

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

注:两个字符串的长度必须相同,为一一对应的关系。

>>> a='Hello!World!'

>>> t = a.maketrans('l','a')

>>> print(a.translate(t))

Heaao!Worad!

>>> name = "cc is uu"

>>> print(name.replace("c","L",1))#替换,1代表替换几次

Lc is uu

(translate是字符的一一映射. 每个字符只要出现都会被替换为对应的字符.

replace是字符串替换, 字符串完整出现后被整体替换.replace的两个字符串参数长度可以不同.)

>>> name = 'ccisuu'

>>> print(name.rfind("u"))#从左往右找到最右边满足条件的下标并返回

5

>>> name = ('cc,nn')

>>> print(name.split(','))#分割字符串,默认用空格分割

['cc', 'nn']

>>> name = ('cc\nuu')

>>> print(name.splitlines())按照换行分割

['cc', 'uu']

>>> name = 'cc'

>>> print(name.swapcase())#大小写转换

CC

2.字典

字典是无序的,是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

2.1 取出元素

>>> dict = {'name':'cc','age':18}

>>> print(dict['name'])

cc

>>> dict = {'name':'cc','age':18}

>>> print(dict.get('age'))

18

2.2 修改字典

>>> dict = {'name':'cc','age':18}

>>> dict['name'] = 'dd'#元素替换,若存在则修改

>>> print(dict)

{'name': 'dd', 'age': 18}

>>> dict['sale'] = 'boy'#若不存在则新增

>>> print(dict)

{'age': 18, 'name': 'cc', 'sale': 'boy'}

2.2 删除字典元素

>>> dict = {'name':'cc','age':18}

>>> del dict['name']#删除键是name的值

>>> print(dict)

{'age': 18}

>>> dict.pop('age')#删除键是age的值

>>> print(dict)

{'name': 'cc'}

>>> dict.popitem()#随机删除:字典本身是无序的

>>> print(dict)

{'age': 18}或{'name','cc'}

>>> dict.clear()#清空词典所有条目

>>> print(dict)

{}

>>> del dict#删除字典

>>> print(dict)

2.3 多级字典嵌套及操作

>>> user = {

"seller":{

"user1":"cc",

"user2":"uu",

"user3":"tt"

},

"buyer":{

"tel1":101,

"tel2":102,

"tel3":103

}

}

>>> print(user)

{'buyer': {'tel2': 102, 'tel1': 101, 'tel3': 103}, 'seller': {'user2': 'uu', 'user1': 'cc', 'user3': 'tt'}}

2.4 字典循环

#方法一:建议用这种方法

>>> info = {"name":"cc","age":18}

>>> for i in info:

>>> print(i,info[i])

name cc

age 18

#方法二:

>>> info = {"name":"cc","age":18}#会先把dict转成list,数据里大时莫用

>>> for k,v in info.items():

>>> print(k,v)

name cc

age 18

2.5 其他

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

而list相反:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

#values

>>> info.values()#取出字典的value

dict_values(['LongZe Luola', 'XiaoZe Maliya'])

#keys

>>> info.keys()#取出字典的key

dict_keys(['stu1102', 'stu1103'])

#setdefault如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典中插入这个键,并且以default为这个键的值,并返回default。default的默认值为None

>>> info.setdefault("stu1106","Alex")

'Alex'

>>> info

{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

>>> info.setdefault("stu1102","龙泽萝拉")

'LongZe Luola'

>>> info

{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

#update 合并,有相同的值就替换;没有就新增

>>> info

{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}

>>> info.update(b)

>>> info

{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

#items 字段转换成列表

info.items()

dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])

#通过一个列表生成默认dict,初始化一个字典,共享一个内存地址

>>> dict.fromkeys([1,2,3],'testd')

{1: 'testd', 2: 'testd', 3: 'testd'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值