序列的运算、操作、函数/方法
1.序列
(1) 序列的标准类型运算
a) <、>、<=、>=、==、!= 值比较
例如:
>>>'apple' < 'banana' True >>>[1,3,5] != [2,4,6] True
b) is、is not 对象身份比较
>>>aTuple=('BA','The Boeing Company','122.64') >>>bTuple=aTuple >>>bTuple is not aTuple False
c) and、or、not 逻辑运算
例如:
>>>('86.40' < '122.64') and ('apple' > 'banana') False
(2) 通用序列类型操作
a) seq[start: end] 切片操作
例如:
>>> week = ['Monday','Tuesday','Wendesday','Thursday','Friday','Saturday','Sunday'] >>> print(week[1],week[-2],'\n',week[1:4],'\n',week[:6],'\n',week[::-1]) Tuesday Saturday ['Tuesday', 'Wendesday', 'Thursday'] ['Monday', 'Tuesday', 'Wendesday', 'Thursday', 'Friday', 'Saturday'] ['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wendesday', 'Tuesday', 'Monday']
b) * 重复组合序列数据
例如:
>>> 'apple'*3 'appleappleapple' >>> ['apple']*3 ['apple', 'apple', 'apple']
c) + 连接2个序列
例如:
>>> 'pine'+'apple' 'pineapple' >>> ['apple','orange']+['grape'] ['apple', 'orange', 'grape']
d) in、not in 判断元素是否存在序列中
例如:
>>> 'BA' in ('BA' ,'The Beoing Company','122.64') True
(3) 序列常用函数
a) 序列类型转换内建函数:
list(iter) 将可迭代对象iter转换成列表
tuple(iter) 将可迭代对象iter转换成元组
str(obj) 将对象obj转换成字符串表示
>>> list('Hello,World') ['H', 'e', 'l', 'l', 'o', ',', 'W', 'o', 'r', 'l', 'd'] >>> tuple("hello,world") ('h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd') >>> str(['apple','banana']) "['apple', 'banana']"
b) 其它常用内建函数:
len(sequence) 返回sequence的长度,为整型类型
sorted(iter, key, reverse) 返回可迭代对象iter排序后的列表,key用来指定排序的规则,reverse用来指定顺序还是逆序排列
reversed(sequence) 返回序列sequence逆序排列后的迭代器
sum(iter, start) 将iter中的数值和start参数的值相加,返回float类型数值
max(iter) 返回可迭代对象iter中的最大值
min(iter) 返回可迭代对象iter中的最小值
enumerate(iter[, start]) 返回一个enumerate对象,可生成一个迭代器,该迭代器的元素是由参数iter元素的索引和值组成的元组
zip(iter1 [,iter2 […]]) 返回一个zip对象,可生成一个迭代器,该迭代器的第n个元素是每个可迭代对象的第n个元素组成的元组
2.字符串
字符串常用方法:
方法 描述
s.capitalize() 返回字符串s首字母大写其余小写的形式|
s.lower() 返回字符串s的小写形式
s.upper() 返回字符串s的大写形式
s.title() 返回字符串s的标题形式即单词首字母大写形式
s.format(*args, **kwargs) 格式化字符串操作
s.count(sub[, start[, end]]) 返回指定字符在[指定位置的]字符串s中出现的次数
s.find(sub[, start[, end]]) 返回指定字符在[指定位置的]字符串s中出现的索引号,找不到则返回-1
s.index(sub[, start[, end]]) 与 find()类似,不同的是如果找不到会引发ValueError异常
s.replace(old, new[, count]) 把字符串s中的old(旧字符串)替换成new(新字符串)。如果指定第三个参数count,则仅仅替换前count次出现的子串
s.lstrip([chars]) 移除字符串s左边的指定字符(默认为空格),返回移除字符串s左边指定字符后生成的新字符串
s.rstrip([chars]) 移除字符串s末尾的指定字符(默认为空格),返回移除字符串s末尾指定字符后生成的新字符串
s.strip([chars]) 移除字符串s头尾指定的字符(默认为空格),返回移除字符串s头尾指定字符后生成的新字符串
s.join(iterable) 用指定的字符串s连接元素为字符串的可迭代对象
s.split(sep=None, maxsplit=-1) 以指定的字符作为分隔符(默认为空格)分割字符串s,maxsplit指分割次数(默认为不限制次数)
s.endswith(suffix[, start[, end]]) 判断字符串s[的指定位置]是否以后缀suffix结尾
s.startswith(prefix[, start[, end]]) 判断字符串s[的指定位置]是否以前缀prefix开头
eg:
>>> song = "Blowing in the wind" >>> song.find("the") 11 >>> song.find("the",8,12) -1 >>> song.lower() 'blowing in the wind' >>> song 'Blowing in the wind' >>> song.split(' ') ['Blowing', 'in', 'the', 'wind'] >>> song.replace("the","that") 'Blowing in that wind' >>> aList = ["hello","world"] >>> ' '.join(aList) 'hello world' >>> y = "你好" >>> z = y.encode('utf-8') >>> z b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> t = z.decode() >>> t '你好'
eg:字符串中标点符号的个数:
>>> aStr = "Hello,World!" >>> bStr = aStr[:6]+"python!" >>> bStr 'Hello,python!' >>> count = 0 >>> for ch in bStr[:]: ... if ch in ',.!?': ... count += 1 ... >>> print('There are {0:d} punctuation marks.'.format(count)) There are 2 punctuation marks.
eg:判断是否为回文字符串
>>> sStr = 'acdhdca' >>> if(sStr == ''.join(reversed(sStr))): ... print('yes') ... else: ... print('no') ... yes
eg:判断是否为标题格式
>>> aStr = 'What do you think of this saying "No pain,No gain"?' >>> lindex = aStr.index('\"',0,len(aStr)) >>> rindex = aStr.rindex('\"',0,len(aStr)) >>> tempStr = aStr[lindex+1:rindex] >>> tempStr 'No pain,No gain' >>> if tempStr.istitle(): ... print('yes') ... else: ... print('no') ... no >>> print(tempStr.title()) No Pain,No Gain
3.列表
列表是可扩展的容器对象,可以包含不同类型的对象。
eg:动态创建列表
>>> [x**2 for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> [(x+1,y+1) for x in range(2) for y in range(2)] [(1, 1), (1, 2), (2, 1), (2, 2)]
列表常用方法
方法 描述
l.append(obj) 在列表l末尾添加新的对象
l.count(obj) 统计某个元素在列表l中出现的次数
l.extend(seq) 在列表l末尾一次性追加另一个序列seq中的多个值(用新列表扩展原来的列表)
l.index(obj) 从列表l中找出某个值第一个匹配项的索引位置,索引从0开始
l.insert(index, obj) 将对象obj插入列表l中索引为index的元素前
l.pop(index) 移除列表l中索引为index的一个元素(默认为最后一个元素),并且返回该元素的值
l.remove(obj) 移除列表l中某个值的第一个匹配项
l.reverse() 将列表l中的元素反转
l.sort(key=None, reverse=False) 对原列表l进行排序,可通过参数key指定排序依据,通过参数reverse指定顺序(默认方式)或逆序排列
eg:sorted()函数与列表的sort()方法的区别
利用sorted()函数对列表进行排序,只是新生成了一个列表的副本,原始列表内容没有改变。通过列表的sort()方法对列表进行排序,是对原始列表真正的排序,列表内容会改变。
>>> aList=[3,5,2,4] >>> aList [3, 5, 2, 4] >>> sorted(aList) [2, 3, 4, 5] >>> aList [3, 5, 2, 4] >>> aList.sort() >>> aList [2, 3, 4, 5]
4.元组
元祖和列表的区别:除了列表用[]表示、元组用()表示之外,最重要的区别是,列表元素可以改变,元组元素不可以改变。
eg:创建元组
>>> bTuple = (['Monday',1],2,3) >>> bTuple[0][1] 1 >>> len(bTuple) 3 >>> bTuple[1:] (2, 3) >>> 2014, (2014,)
元组用在什么地方?
(1)在映射类型中当做键使用
(2)函数的特殊类型参数
eg: 可变长位置参数:
>>> def foo(args1,*argst): ... print(args1) ... print(argst) ... >>> foo('Hello','Wangdachui','Niuyun','Linling') Hello ('Wangdachui', 'Niuyun', 'Linling')
(3)作为函数的特殊返回值
>>> def foo(): ... return 1,2,3 ... >>> foo() (1, 2, 3)
元组常用函数:
函数 描述
len(t) 计算元组t的元素个数
max(t) 返回元组t中元素的最大值
min(t) 返回元组t中元素的最小值
tuple(seq) 将序列seq转换为元组
推荐阅读
-
js function 返回值的函数(js获取后端方法的返回值)
-
C#/.NET使用git命令行来操作git仓库的方法示例
-
python中根据字符串调用函数的实现方法
-
Jedis操作Redis数据库的方法
-
将备份的SQLServer数据库转换为SQLite数据库操作方法
-
Spring Boot 配置MySQL数据库重连的操作方法
-
如何删除搜狗浏览器默认的登录方式 搜狗浏览器删除默认登陆方式的操作方法
-
Android延时操作的三种方法
-
vue.js 中使用(...)运算符报错的解决方法
-
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法