列表及字符串类型
1.列表类比c/c++数组
a,负数下标
>>>spam=['cat','bat','rat','hat']
>>>spam[-3]
'bat'
b,利用切片取得子列表
spam[1:4] 切边内容 【1,4)从1开始到4,不包括4
>>>spam =['cat','bat','rat','hat']
>>>spam[0:4]
['cat','bat','rat','hat']
>>>spam[1,3]
['bat','rat']
>>>spam[1:-1]
['bat','rat','hat']
>>>spam[:2]
['cat','bat','rat']
>>>spam[:]
['cat','bat','rat','hat']
注:省略第一个下标,表示从0开始;后一个表示列表的末尾
2.列表常见函数
len() 返回传递给他的列表中值的个数
+ 列表+列表 连接操作
* 列表*整数 列表的复制
del语句 从列表中删除
>>>spam=['cat','bat','rat','hat']
>>>len(spam)
3
>>>[1,2,3]+['A','B','C']
[1,2,3,'A','B','C']
>>>del spam[2]
>>>spam
['cat','bat','hat']
3.方法 调用一个值
index() append() insert() remove() sort()
4.字符串 可看做单个文本的列表
>>>name = 'Alice'
>>>name[-2]
'c'
>>>name[0:2]
'Ali'
复制 * 字符串*整型
>>>'Alice'* 2
'AliceAlice'
连接 + 字符串+字符串
>>> 'alice'+'alice'
'alicealice'
len() 字符串中字符个数
>>>len('hello')
5
5,in和 not in 操作符
>>>name = 'Alice'
>>>'A' in name
True
6.列表与字符串
列表是“可变”的数据类型,它的值可以添删改
字符串是“不可变”的,改变他的方式是使用切片和连接,记录在另一个变量里
7.list()和tuple()返回传递给它的值的列表和元组版本
>>>tuple(['cat','dog',5])
('cat','dog',5)
>>>list(('cat','dog',5))
['cat','dog',5]
>>>list ('hello')
['h','e','l','l','o']
8.a,引用是指向一个列表的值
>>>spam =[0,1,2,3,4]
>>>ch=spam
>>>ch[1]='Hi'
>>>spam
[0,'Hi',1,2,3,4]
>>>ch
[0,'Hi',1,2,3,4]
b,copy模块的copy()和deepcopy()函数
>>>import copy
>>>spam =[0,1,2,3,4]
>>>ch=copy.copy(spam)
>>>ch[1]='Hi'
>>>spam
[0,1,2,3,4]
>>>ch
[0,'Hi',1,2,3,4]
deepcopy()函数复制列表里包含列表的
9.字典数据类型(键值对,其表项不排序)in /not in
>>> myCat= {'size':'fat','color':'gray'}
>>>myCat['size']
'fat'
10.keys(),values()和items()方法 返回字典的键,值,键-值对
>>> myCat= {'size':'fat','color':'gray'}
>>> for v in myCat.values():
>>> print(v)
fat
42
11.检查字典中是否存在键或者值
>>> myCat= {'size':'fat','color':'gray'}
>>>'size' in myCat.keys()
True
12.字典的简单应用
allGuests ={'Alice':{'apple':5, 'pretzels':12},
'Bob':{'ham sandwiches': 3,'apples':2},
'Carol':{'cups': 3,'apple pies': 1}}
def totelBrought(guests,item):
numBrought =0
for k,v in guests.items();
numBrought = numBrought + v.get(item,0)
return numBrought
print('Number of things being brought:')
print(' -Apples ' + str(totalBrought(allGuests,'apples')))
Number of things being brought:
- Apples 7
13字符串操作
a,双引号 效果跟单引号一样,不过以双引号开始,Python知道单引号是字符串一部分
b,转义符号 \
c."""多行文本“”“ 三个双引号表示多行文本注释
14字符串常见方法
a,upper()和lower()将原字符串左右字母变成相应地大写或小写;
b,isupper()和islower() 若字符串至少有一个字母,并且所有字母皆大写或小写,返回True;
c.isalpha() 若字符串只包含字母且非空,返回True;
d,isalnum() 若字符串只包含字母和数字,且非空,符合返回为True;
e.isdecimal() 若字符串只包含数字字符,且非空,符合返回为True;
f,isspace() 若字符串只包含空格,制表符和换行,返回True;
g.join() 参数是一个字符串列表,返回一个字符串;
>>>', '.join(['cat','bat','rat','hat'])
'cat','bat','rat','hat'
>>>'abc'.join(['cat','bat','rat','hat'])
'catabcbatabchatabc'
h.split() 参数:字符串 返回值:列表
>>>'My name is Alice'.split()
['My','name','is','Alice']
>>>'My name is Alice'.split('m')
['My na','e is Alice']
i,rjust(),ljust(),center()对齐文本
参数:整数n,字符串 返回值:长度为n的字符串
>>> 'hello'.rjust(10)
‘ hello’ # 五个空格
>>> 'hello'.ljust(10,'-')
'hello-----'
center() 中间对齐
j, strip(),rstrip(),lstrip() 删除字符串两边,右边,左边的空白字符(空格,制表符,回车符)
15,pyperclip模块拷贝粘贴字符串
copy()和paste()函数,向计算机的剪贴板发送文本,或者从它接收文本
>>> import pyperclip
>>>pyperclip.copy('Hello world')
>>>pyperclip.paste()
'Hello world'