python的列表,元组,集合,字典

0.文档字符串

代码

#-*- coding:UTF-8 -*-
#文档字符串
def fact(n):
   "this is a function computes a factorial"              #文档字符串
   if (n <= 1): return 1
   else: return n*fact(n -1)
print fact.__doc__
 

结果

>>>

this is a function computes a factorial

>>> 

 

解释:

1.使用该注释:#-*- coding:UTF-8 -*-,该脚本支持utf-8字符。

2.定义函数的时候,缩进量一样为一个制表符,该函数的开头是一个文档字符串

3.调用对象的__doc__属性可以访问该函数的文档字符串

 

1.引用和复制

 

1.0复制

>>> a = [1,2,3,4]
>>> b = a              #b是对a的引用,修改b中的元素即为修改a中的元素
>>> b is a
True
>>> a[2] = 99
>>> a
[1, 2, 99, 4]
>>> 
 

1.1浅复制

>>> a = [1,2,[3,4]]
>>> b = list(a)              #创建a的一个浅复制
>>> b is a
False
>>> b.append(100)        #在b末尾加一个元素
>>> a
[1, 2, [3, 4]]          #a不改变(添加)
>>> b
[1, 2, [3, 4], 100]   #b改变
>>> b[2][0] = -100
>>> b
[1, 2, [-100, 4], 100]            #b改变
>>> a
[1, 2, [-100, 4]]            #a也改变(修改)
>>> 
 

1.2深复制

>>> import copy
>>> a = [1,2,3]
>>> b = copy.deepcopy(a)            #深复制a
>>> b[1] = 10
>>> b            #b发生改变
[1, 10, 3]
>>> a             #a不发生改变
[1, 2, 3]
>>> 

另一种复制的方式

a = [1, 2, 3, 4]
b = a[ : ]


注:在idle命令行中直接书写代码,不保存程序。

可以直接打印某些内容。

 

2.列表,元组,集合,字典

2.0列表是任意对象的序列,比如

>>> names =["granton","tim","mark"]              #定义一个元组,元素为字符串
>>> names[1]        从0开始计数
'tim'
>>> names[0] = "zhuang"     #修改第0个元素
>>> names
['zhuang', 'tim', 'mark']
>>>names.append("samin")         #在元组的末尾追加一个元素
>>> names
['zhuang', 'tim', 'mark', 'samin']
>>>names.insert(2,"douya")        #再第2个位置上添加一个元素
>>> names
['zhuang', 'tim', 'douya', 'mark', 'samin']
>>> a = names[3:]         #切片操作,从第3个元素到末尾
>>> a
['mark', 'samin']
>>> b = names[:3]        #切片操作,从开头到第3个(不包括第3个)
>>> b
['zhuang', 'tim', 'douya']
>>> c = names[1:3]              #切片操作,从第1个到3个(不包括第3个)
>>> c
['tim', 'douya']
>>> d = a+b          #连接两个列表
>>> d
['mark', 'samin', 'zhuang', 'tim', 'douya']
>>> 

2.1元组

在” ()”中放一组数据即可创建一个元组,or干脆不使用”()”,

a = ()      #0-元组

b = (item,)      #1-元组,注意随后的逗号。

元组创建后不能修改其中的内容,其余操作(索引,切片,连接)与列表相同。

区别:列表创建后为了修改,系统会分配较大的内存,元组则被分配到较小的内存。

若要创建大量的小列表并且不修改,元组更加适合。

 

2.2集合

集合用于包含一组无序的(所以不能通过数字索引)不重复的对象,创建集合使用set函数

>>> a = set([1,2,3,4])
>>> b = set("hello")
>>> a
set([1, 2, 3, 4])
>>> b
set(['h', 'e', 'l', 'o'])          #因为集合中的元素是不重复的,所以这里少了一个”l”
>>> 


集合的并,交,差,对称差

>>> t = set([1,2,3,4])
>>> s = set([3,4,5])
>>> t | s         #并集
set([1, 2, 3, 4, 5])
>>> t & s              #交集
set([3, 4])
>>> t – s        #差集,t有,s没有
set([1, 2])
>>> t ^ s        #对称差,t和s都有,t和s的交集没有
set([1, 2, 5])
>>> 

通过add和update方法来添加元素,通过remove方法删除

>>> t = set([1,2,3,4])
>>> t.add(10)
>>> t
set([1, 2, 3, 4, 10])
>>> 

>>> t = set([1,2,3,4,10])
>>> t
set([1, 2, 3, 4, 10])
>>> t.update([7,8,9])
>>> t
set([1, 2, 3, 4, 7, 8, 9, 10])
>>> t.remove(1)
>>> t
set([2, 3, 4, 7, 8, 9, 10])
>>> 

2.3字典

字典是一个关联数组或散列表,包含通过关键字来索引的对象,在{}中放入key andvalue。

>>> stock ={"name":"granton","age":20,"sex":"boy"}             #建立一个字典,key为字符串,value为Python对象。
>>> stock["name"]        #通过key名来索引
'granton'
>>> stock["age"] = 21          #通过key名赋值
>>> stock["age"]
21
>>> stock["like"] ="python"              #添加一个对象
>>> stock
{'age': 21, 'like': 'python', 'name':'granton', 'sex': 'boy'}
>>> stock = {}             #将字典置为空
>>> stock
{}

字典的操作

#-*- coding:UTF-8 -*-
stock = {"name":"granton","age":20,"sex":"boy"}
if "age" in stock:      #若字典中存在该项,则打印
   print stock["age"]
else:
   pass   #pass表示不执行任何操作,直接跳过
age = stock.get("age",0)   #get方法,若字典中不存在该项,则添加,若存在,不执行操作。
like =stock.get("like","python")
slist = list(stock)
print age, like
print slist
del stock["name"]
print "after delete this dict is"
print stock

结果:

20

20 python

['age', 'name', 'sex']

after delete this dict is

{'age': 20, 'sex': 'boy'}

>>> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值