马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 caodouhao 于 2017-8-1 16:44 编辑
你可能发现了,小甲鱼把列表、元组和字符串放在一块儿来讲解是有道理的,我们发现Ta们之间有很多共同点: 1. 都可以通过索引得到每一个元素 2. 默认索引值总是从0开始(当然灵活的Python还支持负数索引) 3. 可以通过分片的方法得到一个范围内的元素的集合 4. 有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
所以我们把他们叁统称为:序列
下面,我们来介绍一些关于序列的常用BIF(内置方法)list(iterable) 把一个可迭代对象转换为列表 >>> a = list()
>>> a
[]
>>> b = "l love fishC.com"
>>> b = list(b)
>>> b
['l', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']
>>>
>>> c = (1,1,2,3,5,8,13,21,34,)
>>> c = list(c)
>>> c
[1, 1, 2, 3, 5, 8, 13, 21, 34]
>>>
tuple([iterable]) 把一个可迭代对象转换为元组
str(obj) 把obj对象转换为字符串
len(sub) 返回sub的长度 >>> a
[]
>>> len(a)
0
>>> len(b)
16
>>> b
['l', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']
>>>
max() 返回序列或者参数集合中的最大值 >>> b
['l', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']
>>> max(1,2,3,4,5)
5
>>> max(b)
'v'
>>>
v的ASCII码值最大
>>> numbers = [1,18,13,0,-98,34,54,76,32]
>>> max(numbers)
76
>>>
min() 返回序列或者参数集合中的最小值 >>> numbers = [1,18,13,0,-98,34,54,76,32]
>>> max(numbers)
76
>>> min(numbers)
-98
>>>
>>> chars = "1234567890"
>>> min(chars)
'0'
>>>
>>> tuple1 = (1,2,3,4,5,6,7,8,9,0)
>>> max(tuple1)
9
>>> min(tuple1)
0
>>>
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> numbers.append("a")
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32, 'a']
>>> max(numbers)
Traceback (most recent call last):
File "<pyshell#75>", line 1, in <module>
max(numbers)
TypeError: '>' not supported between instances of 'str' and 'int'
>>>
比较的类型必须一致。
sum(iterable[, start=0]) 返回序列iterable和可选参数start的总和 >>> tuple2 = (1.1, 2.2, 3.3)
>>> sum(tuple2)
6.6
>>>
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32, 'a']
>>> sum(numbers)
Traceback (most recent call last):
File "<pyshell#81>", line 1, in <module>
sum(numbers)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> numbers.pop()
'a'
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> sum(numbers)
130
>>>
>>> chars
'1234567890'
>>> sum(chars)
Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
sum(chars)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> type(chars)
<class 'str'>
>>>
sorted(iterable, key=None, reverse=False) 返回一个排序的列表,使用方法跟列表的内建函数(list.sort())一致,注意,这个 sorted()后边有“ed”哦。 >>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> sorted(numbers)
[-98, 0, 1, 13, 18, 32, 34, 54, 76]
>>>
reversed(sequence) 返回逆向迭代序列的值,一样道理,跟列表的内建函数(list.reverse())一致,注意,这个reversed()后边也多了个“d”哦。 >>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> sorted(numbers)
[-98, 0, 1, 13, 18, 32, 34, 54, 76]
>>> reversed(numbers)
<list_reverseiterator object at 0x02D0CB70>
>>> list(reversed(numbers))
[32, 76, 54, 34, -98, 0, 13, 18, 1]
>>>
enumerate(iterable) 生成由每个元素的index值和item值组成的元组 >>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> enumerate(numbers)
<enumerate object at 0x02C55F80>
>>> list(enumerate(numbers))
[(0, 1), (1, 18), (2, 13), (3, 0), (4, -98), (5, 34), (6, 54), (7, 76), (8, 32)]
>>>
zip(iter1 [,iter2 […]]) 返回由各个参数的序列组成的元组 >>> a = [1,2,3,4,5]
>>> b = [6,7,8,9,0]
>>> zip(a,b)
<zip object at 0x02C55F80>
>>> list(zip(a,b))
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 0)]
>>>
序列相关经典代码分析
摘自:http://bbs.fishc.com/forum.php?mod=viewthread&tid=64566&ctid=252
1)通过输入考生名查找考生成绩并打印到屏幕上。首先定义一个由考生与对应成绩的元组组成的列表,允许用户输入考生名字,
如果在定义列表内则打印该考生成绩,如果不存在则输出不存在。information = [('小甲鱼',100),('黑夜',70),('怡静',80),('小布丁',60)]
name = input('请输入需要查找的考生姓名:')
I_find = False
for each_name in information:
if name in each_name:
print('您查找的%s同学的成绩为%d分。'%(each_name[0],each_name[1]))
I_find = True
break
if I_find == False:
print('您查找的%s同学不存在该数据库内!!!'%name)
================ RESTART: C:/Users/C/Desktop/1.py ================
请输入需要查找的考生姓名:hh
您查找的hh同学不存在该数据库内!!!
>>>
================ RESTART: C:/Users/C/Desktop/1.py ================
请输入需要查找的考生姓名:黑夜
您查找的黑夜同学的成绩为70分。
>>>
2)编写一段代码实现min()函数功能def min(itery):
least = itery[0]
for each in itery:
if each <= least:
least = each
return least
list1 = [1,2,3,4,5,-1,-2]
least = min(list1)
print('列表list1中最小的元素值为%d。'%least)
================ RESTART: C:/Users/C/Desktop/1.py ================
列表list1中最小的元素值为-2。
>>>
|