字典、集合与字符串——Python基础语法

字典

基本概念

  • 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度
  • 键(key)必须使用不可变类型
  • 同一个字典中,键(key)必须是唯一的
  • 字典的每个键值key=>value对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中,格式如下所示:
    (dic={key1:value1,key2:value2})
    常用方法
方法 描述
keys() 返回字典中键的列表
values() 返回字典中值得列表
items() 返回tuples的列表,每个tuple由字典的键和相应值组成
clear() 删除字典中的所有条目
copy() 返回字典高层结构的一个拷贝,但不复制嵌入结构,而只复制对那些结构的应用
update(x) 用字典中的键值对更新字典内容
get(x[,y]) 返回键x,若未找到该键返回none,若提供y,则未找到x时返回y

字典键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

dict = { ' a ' : 1, ' b ' : 2, ' b ' : ' 3 '}
dict[ ' b ']
输出:' 3 '
dict
输出: { ' a ' : 1,  ' b ' : ' 3 '}

创建字典:基础语法方法

  • 字典中值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组(如:dict = { 'Alice ': '2112 ',‘beth’:‘3434’,‘Cecil’:‘5665’})
  • 也可这样创建字典
    (如:dict1={‘abc’:234}
    dict2={‘abc’:123,98.6:37} )

创建字典:dict函数

  • 使用dict函数,通过其他映射(比如字典)或者(键,值)序列对创建字典
items=[('name','Charry'),('age',42)]#方括号代表列表,圆括号代表里边有两个元组,每个元组有两个元素,这两个元素转换时就变为了键和值
d=dict(items)
print(d)
输出:{‘name’:'Charry','age':42}

  • dict函数也可以通过关键字参数来创建字典
d=dict(name=‘Charry',age=42)
print(d)
输出:{'name':'Charry','age':42}

字典元素修改、添加与删除

  • 当以指定“键”为下标为字典元素赋值时,有两种含义:1、若改键存在,表示修改该键对应的值;2、若不存在,表示添加一个新元素
  • 使用字典对象的update()方法可以将另一个字典的元素一次性全部添加到当前字典对象,如果两个字典中存在相同的键,则以另一个字典中的值为准对当前字典进行更新
sock = { ' Ip ': '192.168.1.1 ', 'port ': 80}
scok.update({ ' Ip ': '192.168.1.1 ','protocol ':'TCP '})
print(sock)
输出:{ ' Ip ': '192.168.1.1 ', 'port ': 80',protocol ' : ' TCP  '}
  • 可以使用字典对象的pop()删除指定“键”对应的元素,同时返回对应的“值”
  • popitem()方法用于删除字典的一个键对,并返回一个包含两个元素的元组,其中的两个元素分别是字典元素的键和值
  • 也可以使用del删除指定的值对应的元素

集合

概述

  • Python集合是无序、可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的不允许重复
  • 集合中只能包含数字、字符串、元组等不可变类型的数据,而不能包含列表、字典、集合等可变类型的数据,包含列表等可变类型数据的元组也不能作为集合的元素
  • 集合中的元素是无序的,元素存储顺序和添加顺序并不一致
  • 集合不支持使用下标直接访问特定位置上的元素,也不支持使用random中的choice()函数从集合中随机选取元素,但支持使用random模块中的sample()函数随机选取部分元素

set(集合)

  • set和dict类似,也是一组key的集合,但不存储value。在set中,没有重复的key。
  • set是无序的

集合常用方法

  • s.add(x):将元素x添加到集合s中,如果元素已存在,则不进行任何操作
  • s=update(x):将x的元素添加到集合s中,x可以是列表、元组、字典等
  • s.pop(x):随机删除集合中的一个元素
  • s.remove(x):将元素x从集合s中移除,如果元素不存在,则会发生错误
  • s.discord(x):将元素x从集合s中移除,如果元素不存在,不会发生错误
data = { 30,40,50}

字符串

概述

  • 字符串是用双引号或者单引号括起来的一个或多个字符
  • 字符串可以保存在变量中,也可以单独存在
  • 字符串属于不可变对象,所有方法都是返回处理后的字符串或者字节串,不对原字符串进行任何修改
  • 可以用type()函数测试一个字符串类型
  • 字符串是一个字符序列:字符串最左端位置标记为0。从最右端为-1

转义

  • Python语言转义符:.在字符串中进行转义,表示该字符\与后面相邻的一个字符共同组成了一个新的含义
  • 输出带有引号的字符串,可以使用转义符
print("\"你好\"")
输出:"你好”

字符串操作

  • 单个索引辅助访问字符串中的特定位置
str1="Hello,world"
print(str1[1])
  • Python中字符串索引从0开始,一个长度为L的字符串最后一个字符为L-1
  • Python同时允许使用负数从字符串右边末尾位置向左边进行反向索引,最右侧索引是-1
  • 可以通过两个索引值确定一个位置范围,返回这个范围的子串(< string >[ < start>:< end >]
  • start和end都是整数型数值,这个子序列从索引start开始直到索引end结束(不包括end位置)
  • 字符串可以通过+或*进行连接
加法操作将两个字符串连接成为一个新的字符串
乘法操作生成一个尤其本身字符串重复连接而成的字符串
x in x:如果x是s的子串,返回true,否则返回false
str[N:M]:切片,返回子串
  • len()函数能返回一个字符串的长度
  • 大多数数据类型都可以通过str函数转换为字符串
  • 可以通过for和in组成的循环来遍历字符串中每个字符

字符串处理方法

< string >.upper():字符串中字母大写
< string >.lower():字符串中字母小写
< string >.strip():去除两边空格及去除指定字符
< string >.split():按指定字符分割字符串为数组
< string >.join():连接两个字符串序列
< string >.find():搜索指定字符串
< string >.replace:字符串替换
< string >.capitalize:句首大写
< string >.title:每个单词首字母大写
< string >.swapcase:大写转换为小写,小写转换为大写
< string >.startswitch()\endswitch():检查字符串是否是以指定字符串substr开头或结束,是则返回True
for < var> in < string >:字符串迭代
replace(str1,str2,[,max]):把将字符串中的str1替换成str2,如果max指定,则替换不超过max次
maketrans():创建字符映射的转换表
translate(str):根据str给出的映射转换表转换string字符
ljust(width[,fillchar]):返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格。rjust()、center()类似
a='hello Python'
print(a)
print(type(a))

a='hello ' \
  'Python'#直接敲回车
print(a)
print(type(a))

b="Hello Python"
print(b)
print(type(b))

c='''Hello
Python'''  #三引号回车不会额外添加任何字符
print(c)
print(type(c))

c="I'm Tom"
print(c)

c='I\'m Tom'
print(c)
输出:
hello Python
<class 'str'>
hello Python
<class 'str'>
Hello Python
<class 'str'>
Hello
Python
<class 'str'>
I'm Tom
I'm Tom
发布了47 篇原创文章 · 获赞 12 · 访问量 7237

猜你喜欢

转载自blog.csdn.net/weixin_43717681/article/details/104064439
今日推荐