注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

互联网产品经理的窝

梦想社:一个人为了梦想,始终没有停下自己的脚步

 
 
 

日志

 
 

Python 学习笔记 - 6.List和Tuple  

2013-05-18 23:16:26|  分类: python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

List,Tuple

1. 转换

我们可以使用 list() / tuple() 函数在列表和元组之间进行转换。

Code
>>>>>> a = ['a''b''c'
>>>>>> a 
[
'a''b''c'
>>>>>> b = tuple(a) 
>>>>>> b 
(
'a''b''c')('a''b''c'
>>>>>> c = list(b) 
>>>>>> c 
[
'a''b''c'
>>>>>>

 

这两个函数接受字符串参数时候比较有意思。

Code
>>>>>> list("xwy2.com"
[
'x''w''y''2''.''c''o''m'
>>>>>> tuple("xwy2.com")

 

2. 运算符操作

列表支持运算符操作。

Code
>>>>>> [12* 2 
[
1212
>>>>>> [12+ [34
[
1234
>>>>>>

 

3. in / not in

可以使用 in / not in 来判断是否包含某个元素。

Code
>>>>>> a = [123
>>>>>> 1 in a 
True 
>>>>>> 4 in a 
False 
>>>>>> b = (123
>>>>>> 2 in b 
True 
>>>>>>

4. range()

我们还可以使用 range() 函数获得一个整数列表,甚至进行运算和添加过滤条件。

Code
>>>>>> range(10
[0, 
123456789
>>>>>> range(2102
[
2468
>>>>>> range(27
[
23456
>>>>>> [x*2 for x in range(10)] 
[0, 
24681012141618
>>>>>> [x for x in range(10if x%2>0] 
[
13579
>>>>>> [x + 1 for x in range(10if x%2==0] 
[
13579
>>>>>>

 

5. Slices

和字符串一样,我们可以通过序号或切片进行访问。

Code
>>>>>> b = (1,2,3
>>>>>> b[-1
3 
>>>>>> b[1:-1
(
2,)(2,) 
>>>>>> b=(1,2,3
>>>>>> b[1
2 
>>>>>> b[1:] 
(
23)(23
>>>>>> b[-1
3 
>>>>>> b=[1,2,3
>>>>>> b[1= 100 
>>>>>> b 
[
11003
>>>>>>

 

6. 相关方法

基本方法:

Code
>>>>>> a = ['a','b','c'
>>>>>> a.index('b'
1 
>>>>>> a += ['d'
>>>>>> a 
[
'a''b''c''d'
>>>>>> a += ['b'
>>>>>> a 
[
'a''b''c''d''b'
>>>>>> a.count('b'
2 
>>>>>> a.insert(1's'
>>>>>> a 
[
'a''s''b''c''d''b'
>>>>>> a.remove('s'
>>>>>> a 
[
'a''b''c''d''b'
>>>>>> a.pop(2
'c' 
>>>>>> a 
[
'a''b''d''b'
>>>>>> a.reverse() 
>>>>>> a 
[
'b''d''b''a'
>>>>>> a.sort() 
>>>>>> a 
[
'a''b''b''d'
>>>>>> a.extend(['e','f']) 
>>>>>> a 
[
'a''b''b''d''e''f'
>>>>>> a.append('m''n'

Traceback (most recent call last): 
File 
"<pyshell#72>", line 1in <module> 
a.append(
'm''n'
TypeError: append() takes exactly one argument (
2 given) 
>>>>>> a.append(['m','n']) 
>>>>>> a 
[
'a''b''b''d''e''f', ['m''n']] 
>>>>>>

 

还可以使用 filter() 进行过滤。

Code
>>>>>> a = range(10
>>>>>> a 
[0, 
123456789
>>>>>> def divfilter(i): 
return i%2 == 0 

>>>>>> filter(divfilter, a) 
[0, 
2468
>>>>>>

上面的代码还可以简写为:

Code
>>>>>> filter(lambda i: i%2==0, range(10)) 
[0, 
2468
>>>>>>

当 function 参数(第一个参数)为 None 时,可以用来过滤掉空值。

Code
>>>>>> b = ['a''', [], [1,2]] 
>>>>>> filter(None,b) 
[
'a', [12]] 
>>>>>>

map() 类似 .NET 中的 Array.Foreach()

Code
>>>>>> map(lambda i:i*2, range(10)) 
[0, 
24681012141618
>>>>>>

另外,我们还可以使用 reduce() 对元素进行统计。

Code
>>>>>> import operator 
>>>>>> reduce(operator.add, range(10)) 
45 
>>>>>> reduce(operator.sub, [10057]) 
88 
>>>>>>

zip() 方法可以对两个或多个列表/元组进行交叉合并。

Code
>>>>>> zip(range(2,10), ('a''b''c''d''e')) 
[(
2'a'), (3'b'), (4'c'), (5'd'), (6'e')] 
>>>>>>
  评论这张
 
阅读(233)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017