目录
1、字符串
序列操作:
字符串具有不可变性:
字符串的方法:
2、列表
定义:
序列操作:
列表的方法:
推导
3、字典
映射操作
嵌套
if测试
键的排序:for循环
4、元组:
为什么使用元组
5、文件
文件的创建和读取
类型的检验
1、字符串
字符串是由单字符组成的序列(序列:一个包含其他对象的有序集合)
序列操作:
(1)内置函数len求取长度
(2)序列支持分片操作(slice),一般形式为X[I:J]表示在X中从偏移量为I直到但不包括J的内容。左边I默认为0,右边J默认为序列长度。
C:Userspc>python Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> s='spam' >>> len(s) 4 >>> s[:3] 'spa' >>> s[:] 'spam' >>> s+'xyz' 'spamxyz' >>>
字符串具有不可变性:
(1)字符串在python中具有不可变性,即创建后不能在原位置改变。(python中每一个对象都可归为不可变的或是可变的,数字、字符串、元组不可变,列表、字典可变)
(2)若想改变字符串的值,则需将其转化为列表
>>> s='spam' >>> s[0]='z' Traceback (most recent call last): File "", line 1, in TypeError: 'str' object does not support item assignment >>> L=list(s) >>> L[0]='z' >>> ''.join(L) 'zpam' >>>
字符串的方法:
方法:依赖作用于对象上的函数。序列之间的操作是通用的,但对不同数据类型方法不通用
(1)S.find(a) 查找子字符串的操作,返回子字符串的位置
(2)S.replace(a,b) 在S中查找a并将其替换为b
(3)格式化操作:
>>> '{0},egg,and,{1}'.format('spam','SPAM')
'spam,egg,and,SPAM'
>>> '{},egg,and,{}'.format('spam','SPAM')
'spam,egg,and,SPAM'
2、列表
定义:
任意类型对象的有序集合。没有固定的大小,是最通用的序列
序列操作:
列表具有和字符串相同的序列操作,如求长度的len(),索引以及切片等
列表的方法:
(1)L.append() 在列表尾部插入给定的一项
(2)L.pop() 移除给定偏移量的一项,并返回这一项
L=[123,'spam',1.23]
>>> L.append('LIU')
>>> L
[123, 'spam', 1.23, 'LIU']
>>>
>>> L.pop(2)
1.23
>>> L
[123, 'spam', 'LIU']
(3)L.sort() 按照升序进行排列
>>> M=['bb','aa','cc'] >>> M.sort() >>> M ['aa', 'bb', 'cc']
推导
使用推导可以简单的创建列表作为结果,但是能够在任何可迭代对象上进行迭代。
内置函数range会生成连续的整数,使用list()可以显示
M=[[1,2,3],[4,5,6],[7,8,9]] >>> M [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> col2=[row[1] for row in M] >>> col2 [2, 5, 8] >>> >>> >>> doubles=[c * 2 for c in 'spam'] >>> doubles ['ss', 'pp', 'aa', 'mm'] >>> list(range(4)) [0, 1, 2, 3]
3、字典
字典:字典不是序列,而是一种映射。字典通过键来存储值,将键映射到值上。即key-->value
映射操作
(1)初始化
(2)键相当于列表中的索引
>>> D={'name':'liu','gender':'man'} #使用大括号进行初始化
>>> D['name']
'liu' #键相当于索引
>>>
>>>
>>> D={}
>>> D['name']='liu' #初始化后可进行添加
>>> D['gender']='man'
>>> D
{'name': 'liu', 'gender': 'man'}
>>>
>>> D=dict(name='liu',gender='man') #使用dict进行初始化
>>> D
{'name': 'liu', 'gender': 'man'}
>>>
>>>
>>> D=dict(zip(['name','gender'],['liu','man'])) #使用zip将键和值进行配对
>>> D
{'name': 'liu', 'gender': 'man'}
嵌套
字典中可以进行嵌套,即值可以是任何数据类型
嵌套允许轻松的建立复杂的数据结构,不必向c语言一样建立类似的结构会困难的多
if测试
判断某个键是否存在于字典中
>>> D={'name':'liu','gender':'man'}
>>> 'f'in D
False
>>> if not 'f' in D:
... print('missing')
...
missing
键的排序:for循环
字典中的键是没有顺序的排列的,若确实需要强加上顺序,可用内置函数sorted()
>>> D={'a':'1','c':'3','b':'2'}
>>> for key in sorted(D):
... print(key,'->',D[key])
...
a -> 1
b -> 2
c -> 3
4、元组:
元组是具有不可变性的列表,它具有序列的操作,和两个专属方法。
元组的初始化使用()
为什么使用元组
使用元组的关键在于不可变性
>>> T=(1,2,3,4) #初始化 >>> len(T) 4 >>> T+(5,6) #使用+操作后也不会改变原来元组的值 (1, 2, 3, 4, 5, 6) >>> T (1, 2, 3, 4) >>> >>> T.index(2) #元组的专属操作 1 >>> T.count(3) 1
5、文件
文件对象是python调用电脑上各种形式的文件的主要接口
文件的创建和读取
>>> f=open('data.txt','w') #文件的写入 'w'代表模式写入
>>> f.write('hellon')
6
>>> f.write('worldn')
6
>>>
>>>
>>> f=open('data.txt','r') #文件的读取 'r'代表读取,默认模式为'r'
>>> text=f.read()
>>> print(text)
hello
world
类型的检验
内置函数type会返回对象的类型
>>> L=[1,'spam',1.2] >>> type(L)>>> if type(L)==type([]): #检验类型 ... print('yes') ... yes >>> if type(L)==list: ... print('yes') ... yes



