Python学习之字符串,字典


  • Python学习之字符串,字典
  • 字符串
  • 转换说明符%s
  • 方法format
  • f字符串
  • 字符串方法
  • center方法
  • find方法
  • join方法
  • lower方法
  • replace方法
  • split方法
  • strip方法
  • translate方法
  • 字典
  • 什么是字典
  • 字典的代码格式
  • 创建字典的函数dict
  • 对字典的操作
  • 字典方法
  • clear方法
  • copy方法
  • fromkeys方法
  • get方法
  • items方法
  • keys方法
  • pop方法
  • setdefault方法
  • update方法
  • values方法


字符串

转换说明符%s

类似于C#中的占位符”{}”

>>> name='hello,%s,%s'
>>> d=('world','python')
>>> name%d
'hello,world,python'

方法format

作用与C#的占位符相同

>>> '{},{},{},{}'.format('a','b','c','d')  #逗号不是必须的
'a,b,c,d'
>>> '{},{},{}'.format('a','b','c','d')  
'a,b,c'
>>> '{2},{2},{2},{2}'.format('a','b','c','d')
'c,c,c,c'
#接下来是错误示范
>>> '{},{},{},{}'.format('a','b','c')
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    '{},{},{},{}'.format('a','b','c')
IndexError: tuple index out of range

f字符串

在Python 3.6中,如果变量与替换字段同名,还可使用一种简写。在这种情况下,可 使用f字符串——在字符串前面加上f。

>>> ap=99
>>> 'this is {ap}'
'this is {ap}'
>>> f'this is {ap}'
'this is 99'

个中区别还是比较好分辨的

字符串方法

center方法

通过在两边添加填充字符(默认为空格)让字符串居中

>>> 'hello,world'.center(30)
'         hello,world          '
>>> 'hello,python'.center(30,'$')
'$$$$$$$$$hello,python$$$$$$$$$'
find方法

在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1

>>> 'hello,world,python'.find('hello')
0
>>> 'hello,world,python'.find('world')
6
>>> 'hello,world,python'.find('py')
12
#find方法还可指定起点与终点
>>> 'hello,world,python'.find('hello',5)
-1
#通过这种方法找到world中的o
>>> 'hello,world,python'.find('o',6,12)
7
join方法

用于合并序列的元素

>>> a=['1','2','3','4,']
>>> '+'.join(a)
'1+2+3+4,'
lower方法

返回字符串的小写版本

>>> 'THanks,Jack'.lower()
'thanks,jack'
replace方法

将指定子串都替换为另一个字符串,并返回替换后的结果

>>> 'Hello,World'.replace('World','Python')
'Hello,Python'
split方法

用于将字符串拆分为序列

>>> a='1+2+3+4'
>>> a.split('+')
['1', '2', '3', '4']
>>> 'hello world python'.split()
['hello', 'world', 'python']
strip方法

将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果

>>> '   asd   '.strip()
'asd'
>>> '   a   s   d    '.strip()
'a   s   d'
#还可在一个字符串参数中指定要删除哪些字符
>>> 'hello world python'.split('o')
['hell', ' w', 'rld pyth', 'n']
translate方法

方法translate与replace一样替换字符串的特定部分,但不同的是它只能进行单字符替换。 这个方法的优势在于能够同时替换多个字符,因此效率比replace高

#将'l'转换成'n',将'h'装换成'e'
>>> table=str.maketrans('lh','ne')
>>> 'hello world python'.translate(table)
'eenno wornd pyteon'

你可能也注意到了,在转换之前我创建了一个转换表,运用了方法maketrans()。这也是使用translate方法所必须做到的

字典

什么是字典

字典是一种映射。字典中有键与值,它们一一对应

字典的代码格式

>>> name={'a':'20','b':'23','c':'21'}
>>> name['a']
'20'

此即创建了一个字典,并使用它进行了查询

创建字典的函数dict

使用函数dict从其他映射(如其他字典)或键值对序列创建字典

>>> name=(['a','b'],['21','23'])
>>> name=dict(name)
>>> name
{'a': 'b', '21': '23'}
>>> name=dict(a=21,b=23)
>>> name
{'a': 21, 'b': 23}

对字典的操作

其基本操作大致与对列表的操作相同,但也有不同点

# 相同点
>>> name={'a':'20','b':'23','c':'21'}
>>> len(name)  #返回键值对数目
3
>>> name['b']  #查询
'23'
>>> name['b']=22  #修改
>>> name['b']
22
>>> del name['b']  #删除
>>> name
{'a': '20', 'c': '21'}
>>> 'b' in name  #查找(是否存在)
False
>>> 'a' in name
True

不同点

#直接进行赋值,若找不到键,则会创建
>>> a={}
>>> a[1]='a'
>>> a
{1: 'a'}
#字符串与字典
>>> a['b']='python'
>>> a
{1: 'a', 'b': 'python'}
>>> "hello,world,{b}".format_map(a)
'hello,world,python'
>>> f"hello,world,{1}".format_map(a)  #注意,这里用了f字符串,不然会报错
'hello,world,1'

字典方法

clear方法

删除所有的字典项

>>> a
{1: 'a', 'b': 'python'}
>>> a.clear()
>>> a
{}
copy方法

返回一个新字典,其包含的键值对与原来的字典相同

>>> name={'a':'20','b':'23','c':'21'}
>>> a=name.copy()
>>> a
{'a': '20', 'b': '23', 'c': '21'}
>>> name.clear()
>>> name
{}
>>> a
{'a': '20', 'b': '23', 'c': '21'}
fromkeys方法

创建一个新字典,其中包含指定的键,且每个键对应的值都是None

>>> a=dict.fromkeys(['name','age'])
>>> a
{'name': None, 'age': None}
#若不想使用默认值,还可使用自定义值
>>> b=dict.fromkeys(['name','age'],('hello'))
>>> b
{'name': 'hello', 'age': 'hello'}
get方法

方法get为访问字典项提供了宽松的环境。通常,如果你试图访问字典中没有的项,将引发错误

>>> b
{'name': 'hello', 'age': 'hello'}
>>> b.get('name')
'hello'
>>> b.get(1,'none')   #意思为,若没有找到1,则返回none
'none'
items方法

方法items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项 在列表中的排列顺序不确定

>>> b
{'name': 'hello', 'age': 'hello'}
>>> b.items()
dict_items([('name', 'hello'), ('age', 'hello')])
keys方法

方法keys返回一个字典视图,其中包含指定字典中的键

>>> b
{'name': 'hello', 'age': 'hello'}
>>> b.keys()
dict_keys(['name', 'age'])
pop方法

方法pop可用于获取与指定键相关联的值,并将该键值对从字典中删除

>>>b
{'name': 'hello', 'age': 'hello'}
>>> b.pop('name')
'hello'
>>> b
{'age': 'hello'}
setdefault方法

方法setdefault有点像get,因为它也获取与指定键相关联的值,但除此之外,setdefault 还在字典不包含指定的键时,在字典中添加指定的键值对。

>>> b
{'age': 'hello'}
>>> b.setdefault('name','none')
'none'
>>> b
{'age': 'hello', 'name': 'none'}
update方法

使用一个字典中的项来更新另一个字典

>>> b
{'age': 'hello', 'name': 'none'}
>>> a={'name':'a'}
>>> b.update(a)
>>> b
{'age': 'hello', 'name': 'a'}
values方法

返回一个由字典中的值组成的字典视图。不同于方法keys,方法values返回的视 图可能包含重复的值

>>> b
{'age': 'hello', 'name': 'a'}
>>> b.values()
dict_values(['hello', 'a'])

Go to the top