Chinaunix首页 | 论坛 | 博客
  • 博客访问: 637249
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: Python/Ruby

2015-07-06 16:58:25

列表,元组和字符串有共同的特点:
—都可以通过索引得到每一个元素
—默认索引值都是从0开始
—可以通过分片的办法得到一个范围内的元素的集合
—有共同的操作符(重复操作符,拼接操作符和成员关系操作符)

1.list()     把一个可迭代对象转换为列表,可以查看他的帮助文档help(list)
>>> help(list)
Help on class list in module __builtin__:
class list(object)
 |  list() -> new empty list
 |  list(iterable) -> new list initialized from iterable's items
list方法可以不带参数,也可以带一个迭代器作为参数;

迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束;

迭代器不能回退,只能往前进行迭代。(以后再看迭代器)

代码:

  1. >>> a=list()
  2. >>> a
  3. []
  4. >>> b="I love You"
  5. >>> b=list(b)
  6. >>> b
  7. ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'Y', 'o', 'u']
b原本是个字符串,通过调用list函数,它带有一个参数(字符串),把该字符串迭代,变成一个列表复制给b


代码:

  1. >>> c=(1,2,3,4,5,6,7,8,9)
  2. >>> c=list(c)
  3. >>> c
  4. [1, 2, 3, 4, 5, 6, 7, 8, 9]
将一个元组变成列表



2.tuple([iterable])    把一个可迭代对象转换为元组
>>> help(tuple)
Help on class tuple in module __builtin__:

class tuple(object)
 |  tuple() -> empty tuple
 |  tuple(iterable) -> tuple initialized from iterable's items
它的用法和list一样

代码:

  1. >>> a="I love You"
  2. >>> a=tuple(a)
  3. >>> a
  4. ('I', ' ', 'l', 'o', 'v', 'e', ' ', 'Y', 'o', 'u')
  5. >>> b=[1,2,3,4,5,6]
  6. >>> b=tuple(b)
  7. >>> b
  8. (1, 2, 3, 4, 5, 6)
3.str(obj)    把obj对象转换为字符串

代码:

  1. >>> a=("I love You")
  2. >>> a=str(a)
  3. >>> a
  4. 'I love You'
  5. >>> a=("I love You","haha")
  6. >>> a=str(a)
  7. >>> a
  8. "('I love You', 'haha')"
4.len(sub)    返回参数sub的长度

代码:

  1. >>> a="I love You"
  2. >>> len(a)
  3. 10
  4. >>> b=[]
  5. >>> len(b)
  6. 0
5.max()和min()    返回序列或者参数集合中的最大/小值

代码:

  1. >>> a
  2. 'I love You'
  3. >>> b
  4. []
  5. >>> c
  6. [1, 2, 3, 4, 5, 6, 7, 8, 9]
  7. >>> max(b)

  8. Traceback (most recent call last):
  9.   File "<pyshell#38>", line 1, in <module>
  10.     max(b)
  11. ValueError: max() arg is an empty sequence
  12. >>> max(c)
  13. 9
  14. >>> max(a)
  15. 'v'
  16. >>> chars="1234567890"
  17. >>> min(chars)
  18. '0'
注意,一定要有参数,而且都为字符的时候,比较的是ASCII码的大小

代码:

  1. >>> c.append("lw")
  2. >>> c
  3. [1, 2, 3, 4, 5, 6, 7, 8, 9, 'lw']
  4. >>> max(c)
  5. 'lw'
6.sum(iterable,[, start=0])    返回序列iterable和可选参数start的总和

代码:

  1. >>> sum1=(1,2,3,4,5)
  2. >>> sum(sum1)
  3. 15

代码:

  1. >>> number
  2. [1, 2, -88, 'a']
  3. >>> number.pop()
  4. 'a'
  5. >>> number
  6. [1, 2, -88]
  7. >>> sum(number)
  8. -85

代码:

  1. >>> sum(number,5)
  2. -80
字符串类型的不能用sun方法,整形,浮点型等可以使用

代码:

  1. >>> chars
  2. '1234567890'
  3. >>> sum(chars )

  4. Traceback (most recent call last):
  5.   File "<pyshell#71>", line 1, in <module>
  6.     sum(chars )
  7. TypeError: unsupported operand type(s) for +: 'int' and 'str'
7.sorted()和list.sort()一样,从小到大排序

代码:

  1. >>> sorted(number)
  2. [-88, 1, 2]
  3. >>> string=["I","love","You"]
  4. >>> string
  5. ['I', 'love', 'You']
  6. >>> sorted(string)
  7. ['I', 'You', 'love']
  8. >>> number.append('a')
  9. >>> number
  10. [1, 2, -88, 'a']
  11. >>> sorted(number)
  12. [-88, 1, 2, 'a']
8.reversed()
返回的是一个迭代器对象,可以用list办法使其转换为列表

代码:

  1. >>> number
  2. [1, 2, -88]
  3. >>> reversed(number)
  4. <listreverseiterator object at 0x000000000327E8D0>
list一个反转迭代器

代码:

  1. >>> list(reversed(number))
  2. [-88, 2, 1]
9.enumerate()    枚举,生成由每个元素的index值和iter值组成的一个元组,直接带参数返回的是一个对象,可以用list方法转换为列表

代码:

  1. >>> number
  2. [1, 2, -88]
  3. >>> enumerate(number)
  4. <enumerate object at 0x0000000002DD9090>
  5. >>> list(enumerate(number))
  6. [(0, 1), (1, 2), (2, -88)]
生成的每个元组包含该元素的索引值和元素的值

10.zip()    返回由各个参数的序列所组成的元组

代码:

  1. >>> a=[1,2,3,4,5,6,7,8]
  2. >>> b=[4,5,6,7,8]
  3. >>> zip(a,b)
  4. [(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
  5. >>> list(zip(a,b))
  6. [(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
a的第0个元素1和b的第0个元素4组合在一起变成一个元组(1,4),成为最后形成的大列表的第0个元素.而且,b只有5个元素,
所以a只取对应的前5个元素,后面的元素省略,就是把两个元素打包成一个元组嘛!









阅读(907) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~