笔记-4:python组合数据类型

1.字符串(str)
- 字符串是字符的序列表示, 根据字符串的内容多少分为单行字符串和多行字符串。
- 单行字符串可以由一对单引号(') 或双引号(")作为边界来表示, 单引号和双引号作用相同。
- 多行字符串可以由一对三单引号(''') 或三双引号(""") 作为边界来表示, 两者作用相同。
print('这是"单行字符串"')
print("这是'单行字符串'")
print("""这是'多行字符串'的第一行
这是'多行字符串'的第二行""")
print('''这是"多行字符串"的第一行
这是"多行字符串"的第二行''')
- python转义符:
| 转义符 | 作用 |
| \n | 换行 |
| \ | 反斜杠 |
| \‘ | 单引号 |
| \" | 双引号 |
| \t | 制表符 |
1.1 字符串的索引

字符串最左端位置标记为0, 依次增加。 对字符串中某个字符的检索被称为索引。
如果字符串长度为L, 正向递增需要以最左侧字符序号为0,向右依次递增, 最右侧字符序号为L-1;
反向递减序号以最右侧字符序号为-1, 向左依次递减, 最左侧字符序号为-L。
字符串以Unicode编码存储, 字符串的英文字符和中文字符都算作1个字符。
<字符串或字符串变量>[序号]
# 正数索引取值从左到右,下标从0开始
# 负数索引取值从右到左,下标从-1开始 a = 'HelloWorld'
print(a[0])
1.2 字符串的切片
- 对字符串中某个子串或区间的检索被称为切片。
<字符串或字符串变量>[N: M]
# [N: M]--->左闭右开 a = '青青子衿,悠悠我心'
print(a[:4])
print(a[0:5])
print(a[5:])
print(a[-1:])
print(a[5:-1])
1.3 字符串的操作符
# 字符串相加
x + y # 复制n次字符串x
x * n或n * x # 如果x是s的子串,返回True,否则返回False
x in s
1.4 字符串的处理函数
# len(x):返回字符串x的长度,也可以返回其他数据类型的元素个数。
print(len('Hello World')) # str(x):返回任意类型x所对应的字符串形式。
print(str('helloworld')) # chr(x):返回Unicode编码x对应的单字符
print(chr(10000)) # ord(x):返回单字符x表示的Unicode编码
print(ord('✐')) # hex(x):返回整数x对应的十六进制数的小写形式字符串。
print(hex(10020)) # oct(x):返回整数x对应八进制数的小写形式字符串
print(oct(10020))
1.5 字符串的处理方法
# str.lower():将字符串全部小写。
str = 'HelloWorld'
print(str.lower()) # str.upper():就字符串全部大写。
str = 'HelloWorld'
print(str.upper()) # str.split(sep=None):分割字符串,返回一个列表。
str = 'Hello World'
print(str.split(sep=' ')) # str.count(sub):返回sub子串出现的次数。
str = 'Hello World'
print(str.count('l')) # str.replace(old,new):将old子串被替换为new。
str = 'Hello World'
print(str.replace('l','o')) # str.center(width,fillchar):字符串居中函数, fillchar参数可选。
str = 'HelloWorld'
print(str.center(20, '=')) # str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。
str = ' ==python== '
print(str.strip(' '))
str = ' ==python== '
print(str.strip(' =')) # str.join(iter):将iter变量的每一个元素后增加一个str字符串。
print(','.join(''))
print(','.join(['','','','']))
1.6 format()方法的基本使用
基本使用格式:
<模板字符串>.format(<逗号分隔的参数>)
# 模板字符串是一个由字符串和槽组成的字符串, 用来控制字符串和变量的显示效果。槽用大括号({})表示, 对应format()方法中逗号分隔的参数。
print("{}曰: 学而时习之, 不亦说乎。 ".format("孔子"))
# 如果模板字符串有多个槽, 且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。
print("{}曰: 学而时习之, 不亦{}。 ".format("孔子","说乎"))
# 通过format()参数的序号在模板字符串槽中指定参数的使用, 参数从0开始编号
print("{1}曰: 学而时习之, 不亦{0}。 ".format("说乎","孔子"))
format()方法的格式控制:{<参数序号>:<格式控制标记>}
# 左对齐(默认):<
print("{:<10}".format("好好学习"))
# 居中对齐:^
print("{:^10}".format("好好学习"))
# 右对齐:>
print("{:>10}".format("好好学习"))
# 居中对齐且填充*号
print("{:*^25}".format("好好学习"))
# 居中对齐且填充+号
print("{:+^25}".format("好好学习"))
# 保留小数点后2位
print("{:.2f}".format(12345.67890))
# 右对齐保留小数点后3位
print("{:>25.3f}".format(12345.67890))
# 取字符串的前5位
print("{:.5}".format("全国计算机等级考试"))
# b: 输出整数的二进制方式;
# c: 输出整数对应的Unicode字符;
# d: 输出整数的十进制方式;
# o: 输出整数的八进制方式;
# x: 输出整数的小写十六进制方式;
# X: 输出整数的大写十六进制方式;
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425))
# e: 输出浮点数对应的小写字母e的指数形式;
# E: 输出浮点数对应的大写字母E的指数形式;
# f: 输出浮点数的标准浮点形式;
# %: 输出浮点数的百分形式。
print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
2.元组(tuple)
- 元组类型用小括号()表示,也可以通过tuple(x)函数将字符串或列表转换成为元组类型。
- 元组是不可变序列类型,不能修改元组中的元素,因此元组没有增加元素,修改元素,删除元素相关的方法。
- 如果需要增加,修改,删除元素,可以先将其转换为列表。
print((1,)) # 定义一个唯一元素的元组,需要在元素后面加一个','
print((1,2,'Hello','你好','='))
2.1 元组的索引

a=(1,2,'你好','HelloWorld')
b=a[0]
print(b)
r = (1,2,'Hello','你好','=')
print(type(r))
for i in r:
print(i)
2.2 元组的切片
a=(1,2,4,5,'你好','HelloWorld')
print(a[0:5:2])
(1, 4, '你好')
2.3 元组的操作函数和方法
a_tuple = (1,2,3,4,1) # a.count(x):查询元组a中元素x的个数
print(a_tuple.count(1)) # a.index(x):查询元组a中元素x的下标
print(a_tuple.index(1)) # a.index(x,start,end:查询元组a中[start,end]区间的元素x的下标
print(a_tuple.index(2,0,2)) # a.index(x,x):查询元组a中两个相同元素之间最后一个元素x的下标
print(a_tuple.index(1,1)) # len(a):查询元组的长度
print(len(a_tuple)) # max(a):查询元组a中元素的最大值
print(max(a_tuple)) # min(a):查询元组a中元素的最小值
print(min(a_tuple)) # sum(a):求和
print(sum(a_tuple))
# 如果需要对元组进行排序,只能使用内置函数sorted(tupleObj),生成新的列表对象,从而进行排序
a = (1,2,3,4,1)
print(sorted(a))
3.列表(list)
列表类型用中括号([]) 表示, 也可以通过list(x)函数将集合或字符串类型转换成列表类型 。
列表没有长度限制, 元素类型可以不同, 不需要预定义长度 。
列表可以由字符串生成。
列表属于序列类型, 所以列表类型支持序列类型对应的操作 。
print([1,2,3,4])
print(list('列表可以由字符串生成'))
3.1 列表的索引

# 索引是列表的基本操作, 用于获得列表的一个元素。 使用中括号作为索引操作符。
r = [1010, "", [1010, ""], 1010]
print(r[3])
print(r[-2])
# 使用遍历循环对列表类型的元素进行遍历操作。
for <循环变量> in <列表变量>:
<语句块> r = [1010, "", [1010, ""], 1010]
for i in r:
print(i)
3.2 列表的切片
# 切片是列表的基本操作, 用于获得列表的一个片段, 即获得一个或多个元素。
<列表或列表变量>[N: M]
或
<列表或列表变量>[N: M: K] # 切片获取列表类型从N到M(不包含M) 的元素组成新的列表。
# 当K存在时,切片获取列表类型从N到M(不包含M) 以K为步长所对应元素组成的列表。
ls = [1010, "", [1010, ""], 1010]
print(ls[1:4])
print(ls[-1:-3])
print(ls[0:4:2])
3.3 列表的操作函数
s = [1, 2, 3, 4, 5, 6] # len(s):列表s的元素个数(长度)
print(len(s)) # min(s):列表s的最小元素
print(min(s)) # max(s):列表s的最大元素
print(max(s)) # list(x):将x转换为列表类型
x = 'abc'
print(list(x))
3.4 列表的操作方法
ls = [1,2,5,9,40] # ls.append(x):在列表ls最后增加一个元素x。
ls.append('') # ls.insert(i,x):在列表ls第i位增加一个元素x。
ls.insert(1,10) # ls.clear():删除ls中所有的元素
ls.clear() # ls.pop(i):将列表ls中第i项元素取出并删除该元素。
ls.pop(0) # ls.remove(x):将列表中出现的第一个x元素删除
ls.remove(1) # ls.reverse():列表ls中元素反转。
ls.reverse() # ls.copy():生成一个新列表,复制ls中所有的元素
ls.copy()
# 使用del对列表元素或片段进行删除
del <列表变量>[<索引序号>]
或
del <列表变量>[<索引起始>: <索引结束>] lt = ["", "10.10", "Python"]
del lt[1]
del lt[1:]
# 使用索引配合等号(=) 可以对列表元素进行修改。
lt = ["", "10.10", "Python"]
lt[1] = 100
4.集合(set)
集合是无序组合, 用大括号({}) 表示, 它没有索引和位置的概念, 集合中元素可以动态增加或删除 。
集合中元素不可重复, 元素类型只能是固定数据类型。整数、 浮点数、 字符串、 元组等, 列表、 字典和 集合类型本身都是可变数据类型, 不能作为集合的元素出现。
由于集合元素是无序的, 集合的打印效果与定义顺序可以不一致。
由于集合无序且唯一,所以使用集合类型能够过滤掉重复元素。
T = {1010, "", 12.3, 1010, 1010}
print(T)
4.1 集合类型操作符
- 集合类型有4个操作符, 交集(&) 、 并集(|) 、 差集(-) 、 补集(^)

S = {1,5,9,10,20,30}
T = {2,10,20,30,40,50}
print(S - T)
print(T - S)
print(S & T)
print(S ^ T)
print(S | T)
4.2 集合的操作函数和方法
s = {1,5,9,10,20,30}
# s.add(x):如果数据项x不在集合s中,将增加x到s。
s.add(100)
# s.remove(x):如果x在集合s中,移除x;不在产生KeyError异常
s.remove(100)
# s.clear():移除集合s中所有的数据项。
s.clear()
# len(s):返回集合s元素个数。
len(s)
# x in s:如果x是S的元素, 返回True, 否则返回False
1 in s
# x not is s: 如果x不是S的元素, 返回True, 否则返回False
1 not is s
4.3 元素去重
s = set('知之为知之不知为不知')
for i in s:
print(i, end="")
5.字典(dict)
字典使用大括号{}建立, 每个元素是一个键值对 。
键和值通过冒号连接, 不同键值对通过逗号隔开。
键值对之间没有顺序且不能重复。
{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>}
d = {"":"小明", "":"小红", "":"小白"}
print(d)
5.1 字典的索引
- 字典元素“键值对” 中键是值的索引, 因此, 可以直接利用键值对关系索引元素。
<值> = <字典变量>[<键>]
d = {"":"小明", "":"小红", "":"小白"}
print(d[201801])
- 利用索引和赋值(=) 配合, 可以对字典中每个元素进行修改。
d[""] = '新小红'
print(d)
- 使用大括号可以创建字典。 通过索引和赋值配合,可以向字典中增加元素。
t = {}
t[""] = "小小"
print(d)
5.2 字典的操作函数
# len(d):字典d的元素个数(长度)
print(len(d)) # min(d):字典d中键的最小值
print(min(d)) # max(d):字典d中键的最大值
print(max(d)) # dict():生成一个空字典
a = dict()
print(type(a))
5.3 字典的操作方法
# d.keys():返回所有的键信息
print(d.keys()) # d.values():返回所有的值信息
print(d.values()) # d.items():返回所有的键值对
print(d.items()) # d.get(key,default):键存在则返回相应值, 否则返回默认值
print(d.get(key,default)) # d.pop(key,default):键存在则返回相应值, 同时删除键值对, 否则返回默认值
print(d.pop(key,default)) # d.popitem():随机从字典中取出一个键值对, 以元组(key, value)形式返回
print(d.popitem()) # d.clear():删除所有的键值对
d.clear()
# 所有保留字del删除某一个元素
d = {"":"小明", "":"小红", "":"小白"}
del d[""]
# 使用保留字in,判断一个键是否在字典中。
d = {"":"小明", "":"小红", "":"小白"}
print("" in d)
5.4 字典的循环遍历
for <变量名> in <字典名>
<语句块> # for循环返回的变量名是字典的索引值。 如果需要获得键对应的值, 可以在语句块中通过get()方法获得。
d = {"":"小明", "":"小红", "":"小白"}
for k in d:
print("字典的键和值分别是: {}和{}".format(k, d.get(k)))
笔记-4:python组合数据类型的更多相关文章
- Python学习笔记(六)Python组合数据类型
在之前我们学会了数字类型,包括整数类型.浮点类型和复数类型,这些类型仅能表示一个数据,这种表示单一数据的类型称为基本数据类型.然而,实际计算中却存在大量同时处理多个数据的情况,这种需要将多个数据有效组 ...
- python组合数据类型和数据结构
//2019.12-071.pyhton里面组合数据类型主要有三种:集合(set).序列(字符串str.列表list and 元组tuple)和映射(字典dic)2.集合类型一般使用大括号{}来进行表 ...
- [python学习手册-笔记]002.python核心数据类型
python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...
- 学习笔记28—Python 不同数据类型取值方法
1.array数据类型 1)-------> y[i,] 或者 y[i] 2.遍历目录下所有文件夹: def eachFile(filepath): pathDir = os.list ...
- python的组合数据类型及其内置方法说明
python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
- Python Revisited Day 03 (组合数据类型)
目录 第三章 组合数据类型 3.1 序列类型 3.1.1 元组 3.1.2 命名的元组 (collections.nametuple()) 3.1.3 列表 (查询有关函数点这) 3.1.4 列表内涵 ...
- Python字符串、组合数据类型练习
一.Python字符串练习 1.http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html 取得校园新闻的编号. (这个方法就很多了,一般方 ...
- Python组合类型笔记
Python中常用的三种组合数据类型,分别是: - 集合类型 - 序列类型 - 字典类型 1. 集合类型: -集合用大括号{}表示,元素间用逗号分隔 -建立集合类型用{}或set() -建立空集合类型 ...
随机推荐
- 哈希表(hash table)基础概念
哈希是什么 引入:我们在学习数组的时候,使用数组元素的下标值即可访问到该元素,所花费的时间是O(1),与数组元素的个数n没有关系,这就是哈希方法的核心思想. 哈希方法:以关键值K为自变量,通过一定的函 ...
- 20175313 张黎仙《Java程序设计》第十周学习总结
目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码调试中的问题和解决过程 四.代码托管 五.心得体会 六.学习进度条 七.参考资料 一.教材学习内容总结 第十二章内容 主要内容 杂项 ...
- vuejs是如何编译checkbox数组的v-model的
随便用官方的例子编译了一下, 发现如下 _c("input", { directives: [ { name: "model", rawName: " ...
- IO调度 | Linux块设备中的IO路径及调度策略
当文件系统通过submit_bio提交IO之后,请求就进入了通用块层.通用块层会对IO进行一些预处理的动作,其目的是为了保证请求能够更加合理的发送到底层的磁盘设备,尽量保证性能最佳.这里面比较重要的就 ...
- 前端知识点回顾——Reactjs
React.js 编写react需要安装的三个开发环境下的模块 babel 解析JSX react 实现ui用户界面 react-dom 处理dom JSX:在JavaScript里面写html代码( ...
- Docker 官方安装详解
# 0x00 安装热身 - 针对CE版本 Docker 分为 CE 和 EE 版本, CE免费,EE收费,CE版以及能够满足我们所有需求 本文针对 CE 版本的安装进行说明 - 系统说明 本文以 Ce ...
- Qt自定义类添加qvector报错
PtsData& PtsData::operator=(const PtsData& obj){ return *this;} PtsData::~PtsData(){ }
- jpa 总结
转:http://blog.csdn.net/linzhiqiang0316/article/details/52639265 先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 S ...
- pcntl_fork()函数说明
pcntl_fork()函数复制了当前进程的PCB,并向父进程返回了派生子进程的pid,父子进程并行,打印语句的先后完全看系统的调度算法,打印的内容控制则靠pid变量来控制.因为我们知道pcntl_f ...
- hibernate 第二次深入接触
1.session 到底如何进行脏处理? 当一个Dept对象加入到session缓存时,Session会为Dept对象的值属性复制一份快照,当Session刷新缓存时,会进行脏处理. 2.OID 用来 ...