python入门1之 list、tuple、dict、set的基本要点

关于list的三个操作
L.append(); #插入list尾
L.insert(x); #插入list定位
L.pop(x); #出列表

list切片操作

>>> L=[1,2,3,4,5,6,7,8,9,10]
>>> L[0:3]
[1, 2, 3]
>>> L[:]     #表示从头取到尾
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> L[::2]  #表示每隔两个取一个
[1, 3, 5, 7, 9]

倒叙切片

>>> L[-2:]
[9, 10]
>>> L[:-2]
[1, 2, 3, 4, 5, 6, 7, 8]
>>> 

生成列表
range函数

>>> L=range(1,10)
>>> print L
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L1=range(1,10,2)
>>> print L1
[1, 3, 5, 7, 9]

python特有的列表生成式

>>> P1=[x*(x+1) for x in range(1,10)]
>>> print P1
[2, 6, 12, 20, 30, 42, 56, 72, 90]

关于tuple的知识点需要注意的地方: 如果tuple只有一个元素如t=(1);
这样写python会将它识别成括号,这样打印出来的其实是1。所以在单元
素里面要多加一个逗号 如:t=(1,)

关于tuple和list区别:tuple创建之后不能改变如 tuple1[1]=’xxx’是错误的写法;
关于不可变性

    >>> t=d=(1,2,3)
    >>> id(t)
    48090640
    >>> id(d)
    48090640
    >>> t=(2,5)
    >>> id(t)
    48522120
    >>> id(d)
    48090640
    >>> d
    (1, 2, 3)
所以不可变性指的是元组本是不可变得,但是t指向性是可变的                         

关于dict的操作
d={
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}
第一种用法 d[‘Adam’] 第二种用法 d.get(‘Adam’)
更新dict

d['Puak']=80    #更新
d.add(name)     #添加
d.remove(name)  #删除
d.values()        #把dict转换成一个包含所有value的list
d. itervalues()

>>> d={'w':1,'e':2,'r':3}
>>> d.values()
[3, 2, 1]

d.items()    #将dict转换为包含tuple的list即[(),(),()]
>>> print d.items()
[('r', 3), ('e', 2), ('w', 1)]

dict三大特点: dict内部是无序的
dict比list查找速度快
dict的key是不可变的 例如:list是可变的,所以不能作为key


set的操作

 L=[1,2,3,4,4,]
>>> s=set(L)
>>> print s
set([1, 2, 3, 4])
>>> 1 in s
True

set为无序结合,访问时候用 in
一个简单的例子:

week=set(['mon','tue','wed','the','fri','sat','sum'])
x=input()
if x in week:
    print x
else:
    print 'err'

set和tuple结合使用的例子

s= set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
    print x[0] + ':', x[1]

迭代基本知识
enumerate函数用于索引迭代(所谓的索引大概就是序列号吧,个人理解)

>>> L=[1,2,3,4,5]
>>> s= enumerate(L)
>>> print s
<enumerate object at 0x029433A0>
>>> for index ,shu in s:
    print index ,shu

0 1
1 2
2 3
3 4
4 5

>>> for x in L:
    print x


1
2
3
4
5

zip函数可以将两个列表合成一个list

>>> L1=[1,2,3,4]
>>> L2=['a','b','c','d']
>>> zip(L1,L2)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值