Python中的列表,元组,字典,字符串,for循环
1. 列表
- 列表
引入一个新的概念:数据结构
数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在 python 中,最基本的数据结构是序列,序列中的每个元素匾被分配一个序号–即元素的位置,也称为索引,第一个索引是0,第二个则是1,以此类推- 列表是什么
列表由一系列特定顺序排列的元素组成,你可以创建包含字母表中所有字母,数字或所有家庭成员姓名的列表;也可>以将任何东西加入列表中,其中的元素之间可以没有任何关系
列表类似于C语言中的数组
1.1 列表的创建
进行简单的列表创建
test_list = [1,2,3,4,'test']
print test_list
执行如下:
1.2 列表信息的增删改查
1.2.1 index 查找列表中元素的下标
test_list = [1,2,3,4,'test']
print test_list
print test_list.index('test') # 查看列表中 test 元素的下标
执行如下:
1.2.2 修改元素列表信息:
nba = ['Lakers','Heat','Sun','Rocket','Cave','Bulls']
# 定义名为nba的列表及其列表内容。
print nba
# 在控制台显示列表内容
nba[0] = 'cba'
# 修改列表的第 0 个元素为'cba'
print nba
执行如下:
显示结果如下:
1.2.3 添加列表元素
- append : 在列表末尾添加
示例:
list_test = [] # 定义一个空列表
print list_test # 在控制台显示列表
list_test.append('hello') # 在列表最后添加字符串
print list_test # 在控制台显示列表
list_test.append('bye') # 在列表最后添加字符串
list_test.append('see you later') # 在列表最后添加字符串
print list_test # 在控制台显示列表内容
执行如下:
- insert :在指定位置插入指定元素
示例:
nba = ['Lakers', 'Heat', 'Sun', 'Rocket', 'Cave', 'Bulls']
# 定义名为 nba 的列表及其列表内容。
print nba
nba.insert(2,'Bucks')
# 为列表 nba 中的索引号为 2 的位置添加元素'Bucks'
print nba
执行如下:
- extend :把另外一个列表的完整内容追加到当前列表的末尾
nba = ['Lakers', 'Heat', 'Sun', 'Rocket', 'Cave', 'Bulls']
# 定义名为nba的列表及其列表内容。
print nba
nba2 = ['Lakers','Celtics','Nets','Pakers']
print nba2
nba.extend(nba2)
print nba
执行如下:
1.2.4 删除列表元素
- del :关键字,本质上是,将一个变量从内存中删除,结果不可逆
- pop() :默认将列表最后一个元素弹出
- remove 指定移除的值,默认删除列表中出现的第一个指定元素(此元素在列表中不唯一)
若不了解指定关键字如何使用,可将鼠标放置与关键字上,点击cttl + q 可查看关键字的用法
del 进行删除
直接删除列表,结果不可逆
pop 进行移除
nba = ['Lakers', 'Heat', 'Sun', 'Rocket', 'Cave', 'Bulls']
# 定义名为nba的列表及其列表内容。
print nba
nba.pop() # 默认弹出列表中最后一个元素
print nba
nba.pop(0) # 指定弹出列表中索引为 0 的元素
print nba
执行如下:
1.2.5 列表的统计
- len 进行列表长度的度量
nba = ['Lakers', 'Heat', 'Sun', 'Rocket', 'Cave', 'Bulls']
# 定义名为nba的列表及其列表内容。
print nba
print len(nba) # 进行列表长度计算
执行如下:
- count :可以统计列表中某一个元素出现的次数
nba = ['Lakers', 'Heat', 'Sun', 'Rocket', 'Cave', 'Bulls','Lakers']
# 定义名为nba的列表及其列表内容。
print nba
print nba.count('Lakers') # 进行指定元素出现次数的测量
执行如下:
- sort 对列表进行永久排序 ,默认以ascill 码的顺序进行升序排序
示例:
commend = ['ls','echo','rm','cat','fdisk','grep','sed','ps','top','at','blkid','date']
print commend
commend.sort() ## 对 commmend 列表进行顺序排序
print commend ## 在控制台显示列表
# .sort(reverse=True) 进行倒序排序
执行如下:
示例:
commend = ['ls','echo','rm','cat','fdisk','grep','sed','ps','top','at','blkid','date']
print commend
commend.sort(reverse=True) ## 对 commmend 列表进行逆序排序
print commend
执行如下:
- sorted(列表) 临时对列表进行排序
示例:
commend = ['ls', 'echo', 'rm', 'cat', 'fdisk', 'grep', 'sed', 'ps', 'top', 'at', 'blkid', 'date']
print commend
print sorted(commend) # 临时进行排序
print commend
执行如下:
- .reverse() 将原列表内容反过来
示例:
commend = ['ls','echo','rm','cat','fdisk','grep','sed','ps','top','at','blkid','date']
print commend
commend.reverse() ##将原列表内容反过来
print commend
执行如下:
2 for 语句
取出列表中的元素,再对其进行操作
for 的简单示例:
study = ['math','Chinese','sport'] ## 定义列表
for test in study: ## 取出 study 的内容,放在test 中
print 'Today we study %s' % test ## 一个一个的显示
print 'Fucking study!!!'
执行如下:
range 生成纯数字列表
range(1,6)
生成一个元素内容为1-5的列表
若是单纯的生成数字列表,可运用 range 进行生成
例如: 生成一个步长为2,元素为2-10的纯数字列表
num = range (2,11,2)
执行如下:
将 range 与 for 语句进行连用
示例如下:
进行 1-10 的幂的显示
squares = []
for list_mi in range(1,11):
square = list_mi ** 2
squares.append(square)
print squares
3 元组 tuple
- Tuple(元组)与列表相似,不同之处在于元组的元素不能修改
元组表示多个元素组成的序列
元组在python开发中,有特定的应用场景用于存储一串信息,数据之间使用 , 分隔
元组用 () 定义
列表中通常保存相同类型的数据,而元组中通常保存不同类型的数据
不可对元组内容进行增添删除
3.1 定义只包含一个数据的元组
示例:
single_tuples=(1,)
print type(single_tuples)
执行如下:
3.2 元组的取值,取索引,统计计数以及统计与元素个数
Kobe_tuple = ('Kobe Bryant',40,1.98,5,2) ## 定义元组
print Kobe_tuple.count('Kobe Bryant') ## 统计元组中 Kobe Bryant 出现的次数
print Kobe_tuple.index(5) ## 显示元组中元素 5 的索引
print Kobe_tuple[0] ## 显示元组中索引为 0 的元素
print len(Kobe_tuple) ## 显示元组中元素的个数
执行如下:
若是想要对元组内容进行修改,则可以修改元组类型为列表,然后对其进行修改修改完成后,再将其类型修改为元组。
示例如下:
Kobe_tuple = ('Kobe Bryant',40,1.98,5,2) ## 定义元组
print type(Kobe_tuple)
print Kobe_tuple
Kobe_tuple = list(Kobe_tuple) ## 将元组类新修改为列表
print type(Kobe_tuple)
print Kobe_tuple
然后再对其进行修改,修改完成后在将其转化为元组
执行如下
可通如下方式对元组内容进行调用:
Kobe_tuple = ('Kobe Bryant',40,1.98,5,2)print '%s is %d years old,he is
%d tall and won %d times NBA champions and got %d times Final MVP'
% Kobe_tuple
print '%s is %d years old,he is %.2f tall and won %d times NBA champions
and got %d times Final MVP' % Kobe_tuple
执行如下:
4 字典
- 字典的定义
dictionary(字典)是除列表以外 python 中最灵活的数据类型
字典同样可以用来存储多个数据,通常用于存储描述一个物体的相关信息- 字典和列表的区别
列表是有序的对象集和
字典是无序的对象集和- 字典用 {} 定义
字典使用键值对存储数据,键值对之间使用 , 分隔
键key是索引
值value是数据
键和值之间使用;分隔
键必须是唯一的(因为我们必须通过键来找到数据)
值可以取任何数据类型,但键只能使用字符串,数字或元组- 字典是一个无序的数据集和,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的
示例:定义简单的字典:
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':40,
'obj':'NBA'}
print information
执行如下:
4.1 取值:
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':40,
'obj':'NBA'}
print information['obj'] ## 显示键名为'obj'的值
执行如下:
4.2 增加/修改
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':40,
'obj':'NBA'}
print information
information['age'] = 41 ## 修改键 'age' 的值为 41
print information
information['sex'] = 'male' ## 添加键 'sex' 且值为 'male'
print information
执行如下:
4.3 删除
.pop(‘自定义索引’)
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':40,
'obj':'NBA'}
print information
information.pop('age') ## 删除 'age' 键及其值
print information
执行如下:
4.4 统计
4.4.1 统计键值对的数量
print len(字典名称)
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':40,
'obj':'NBA'}
print len(information) ## 显示指定字典的键值对的个数
执行如下:
4.4.2合并字典
字典1.upadte(字典2)
print 字典1
如果字典2中的键值对在字典1中存在,则会按照字典2的内容进行更行
若字典2中的键值对在字典2中不存在则会为字典1添加对应的键值对
information = {'name':'Kobe Bryant', ## 定义字典1
'height':'1.98',
'age':41,
'obj':'NBA'}
print information
test = {'age':40, ## 定义字典2
'Champions':5,
'Final MVP':2,
'MVP':1}
print test
information.update(test) ## 将字典1,2进行合并
print information
执行如下:
4.4.3 清空字典
操作: 字典.clear
示例:
information = {'name':'Kobe Bryant',
'height':'1.98',
'age':41,
'obj':'NBA'}
print information
information.clear() ## 清空字典
print information
执行如下:
4.4.4 字典循环
name_dict = {'Name':'Tom',
'Phone':110,
'QQ':123456}
for k in name_dict:
print k,name_dict[k]
执行如下:
在列表中定义多个字典,再进行循环
list_dict = [{'name':'Tom','age':18,'obj':'linux'},
{'name':'Jarry','age':28,'obg':'java'}]
## 创建列表,列表的元素为> 字典
for dict in list_dict: ## 对列表进行循环显示,然后对显示出的字典再进行循环显示
print dict
for mes in dict:
print mes,dict[mes]
执行如下:
5 字符串
5.1 统计字符串的长度
print len(字符串)
str1 = "hello world"
print len(str1) # 统计字符串的长度
执行如下
5.2 统计某一小字符串出现的次数
str1 = "hello world"
print str1.count('w')
执行如下:
5.3 某一个子字符串出现的位置
使用index(),进行子字符串查找时,如果字符串不存在,程序会报错
str1 = "hello world"
print str1.index('o')
执行如下:
5.4 字符串判断
5.4.1 判断字符串是否只包含数字
- S.isdigit() -> bool
如果S中的所有字符都是数字,且S中至少有一个字符,则返回True,否则为False
示例:
str1 = 'Hello world'
print str1
print str1.isdigit() ## 返回值为false
执行如下:
5.4.2 判断是否以指定的字符串开始
.startwith(”)
示例:
str1 = 'Hello world'
print str1
print str1.startswith('H') ## 判断指定字符串是否以 ‘H’ 开头
执行如下:
5.4.3 判断字符串是否以指定字符串结束
.endwith(”)
示例:
str1 = 'Hello world'
print str1
print str1.endswith('world') ## 判断字符串是否以 ‘world’ 结尾
执行如下:
5.4.4 查找指定的字符串,返回的是字符串的索引
如果查找的字符串不存在,程序不会报错,会返回-1
.find(”)
示例:
str1 = 'Hello world'
print str1
print str1.find('r') ## 查找‘r’ 字符串中 r 所在的索引
执行如下:
控制台返回值为: 8
5.4.5 替换字符串
.replace
示例:
str1 = 'Hello world'
print str1
print str1.replace('world', 'linux')
## 将字符串中的‘world’,替换为‘linux’
执行如下:
5.4.6 判断字符串是否为空(如空格换行符号,制表符等)
S.isspace() -> bool
如果S中的所有字符都是空格,且S中至少有一个字符,则返回True,否则为False。
示例:
str1 = 'Hello world'
print str1
print str1.isspace()
返回值为 false ,字符串中有空格
str2 = '\t'
print str2.isspace()
返回值为 true 字符串为空
执行如下:
6 切片
对字符串而言
6.1.切取指定索引的字符
str1 = 'start today'
print str1[1:9] # 从索引为 1 切到索引为 8
执行如下:
6.2 切取指定索引到字符串末尾的字符
str1 = 'start today'
print str1[2:] # 从索引为 1 切到索最后
执行如下:
6.3 切取开头到指定索引的字符
str1 = 'start today'
print str1[:7] # 从字符串开头切到索引为 7
执行如下:
6.4 切取整个完整字符串
str1 = 'start today'
print str1[:] # 从头到尾截取字符串
执行如下:
6.5 切取指定位置,指定补偿的字符内容
str1 = 'start today'
print str1[1:5:2] # 截取索引 1 - 5 ,步长为 2
执行如下:
6.6 逆序切取字符串中的字符
str1 = 'start today'
print str1[-1] # 逆序切取索引为 -1
执行如下:
str1 = 'start today'
print str1[2:-1] # 切取索引 2 - -1
执行如下:
6.7 逆序显示字符串中的字符
str1 = 'start today'
print str1[::-1] # 逆序切取字符串
执行如下:
6.8 切片在列表中同样适用
test_list = range(0,11) ## 定义一个数字列表
print test_list
print test_list[1:10] ## 显示索引 1-10
print test_list[:] ## 显示整个列表
print test_list[:8] ## 显示开头到索引 8
print test_list[::-1] ## 倒序列表
print test_list[:-2:3] ## 以步长为 3 显示开头到索引为 -2 的列表内容
执行如下: