python入门list和tuple,dict和set

1.list:一种有序的集合,可以随时添加和删除其中的元素

用 [ ] 把list所有元素括起来,就是list对象。

list中包含的元素可以不是同一种类型,也可以一个元素都没有。

例:

classmates = ['Michael', 'Bob', 'Tracy']
L = ['Michael', 100, True]
empty_list = []

1.1访问list:通过索引获取list中的指定元素

注意:索引从0开始,即第一个元素的索引是0.且索引不要越界,越界会报错。

例:

 L = ['Adam', 'Lisa', 'Bart']
print L[0]
Adam
print L[1]
Lisa
print L[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

1.2倒序访问list

例:

L = ['Adam', 'Lisa', 'Bart']
print L[-2]
Lisa
print L[-3]
Adam
print L[-4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

1.3添加新元素

方法一:用list的apped()方法,将最新元素添加至末尾

例:

 L = ['Adam', 'Lisa', 'Bart']
L.append('Paul')
print L
['Adam', 'Lisa', 'Bart', 'Paul']

方法二:用list的insert(索引号,新元素)方法,指定添加到位置上。

例:

L = ['Adam', 'Lisa', 'Bart']
L.insert(0, 'Paul')
print L
['Paul', 'Adam', 'Lisa', 'Bart']

1.4删除元素

用list的pop()方法,总是删除最后一个元素,且返回该元素。也可通过pop(索引号)来指定删除

例:

 L = ['Adam', 'Lisa', 'Bart', 'Paul']
L.pop()
'Paul'
L = ['Adam', 'Lisa', 'Paul', 'Bart']
L.pop(2)
'Paul'

1.5替换元素

对list中的某个索引赋值,可直接替换原来的元素

例:

L = ['Adam', 'Lisa', 'Bart']
L[2] = 'Paul'
print L
L = ['Adam', 'Lisa', 'Paul']


2.tuple:一种有序列表一旦创建,就不能修改

例:

t = ('Adam', 'Lisa', 'Bart')

获取tuple元素的方式和list一样。

2.1创建单元素tuple

例:

 t = (1,)  #防止和t=(1)混淆
 print t
(1,)
t = () #空tuple
print t
()

2.2’可变的‘tuple

例:

t = ('a', 'b', ['A', 'B'])
L = t[2]#获取tuple的第三个元素
L[0] = 'X' #修改list的元素
L[1] = 'Y'
print t

('a', 'b', ['X', 'Y'])


总结:tuple中的’不变‘是说,tuple的每个元素指向永远不变,如指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的。


3.dict:以key:value的格式存储,dict也是集合

例:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
len(d) #使用len()函数计算集合的大小
3

3.1访问dict

方法一:dict可以使用key来查找对应的value

例:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
print d['Adam']
95
print d['Paul']  #注意:key不存在时,会报错
Traceback (most recent call last):
  File "index.py", line 11, in <module>
    print d['Paul']
KeyError: 'Paul'

为了避免key不存在时报错,则使用if判断如下:

if 'Paul' in d:
    print d['Paul']

方法二:使用dict的get方法,当key不存在时,返回none

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
print d.get('Bart')
59
print d.get('Paul')
None

3.2dict的特点:

1.查找速度快,与dict中的元素无关,无论多少,查找速度都一样。

2.占用内存大,会浪费很多内容

3.dict是按照key查找的,在一个dict中,key不能重复

4.存储的key-value序对是无序的

5.作为key的元素必须是不可变的,value无所谓

例:

{
    '123': [1, 2, 3],  # key 是 str,value是list
    123: '123',  # key 是 int,value 是 str
    ('a', 'b'): True  # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean
}

3.3更新dict

直接使用key赋值语句,key已经存在,则会替换原来的value

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
d['Paul'] = 72
print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}
d['Bart'] = 60 #key已经存在
print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 60}

3.4遍历dict

直接使用for循环遍历dict的key

d = {
  'Adam': 95,
  'Lisa': 85,
  'Bart': 59
}
for key in d:

  print key,':',d[key]


4.set:持有一系列没有重复且无序的元素。

创建set的方式:调用set()并传入一个list

例:

s = set(['A', 'B', 'C'])
print s
set(['A', 'C', 'B'])

当传入包含重复元素的list会自动去掉重复的元素

例:

s = set(['A', 'B', 'C', 'C'])
print s
set(['A', 'C', 'B'])
len(s)
3

4.1访问set:由于set存储的是无序集合,则通过判断一个元素是否在set中来访问set的某个元素

注意:元素的大小写

s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
'Bart' in s
True
'Bill' in s
False
'bart' in s #注意大小写
False

4.2set的特点:

1.set的内部结构和dict很像,只是不存储value。判断一个元素是否在set中,速度很快

2.set中的元素必须是不变的对象

3.set中的元素是无序的

例:

weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
x = '???' # 用户输入的字符串
if x in weekdays:
    print 'input ok'
else:
    print 'input error'

4.3遍历set

通过for循环遍历

s = set(['Adam', 'Lisa', 'Bart'])
for name in s:
  print name 
Lisa
Adam
Bart #元素顺序是不同的
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for name,score in s:
  print name,':',score

4.4更新set:一是把新的元素添加到set中,二是把已有元素从set中删除

添加元素,用set的add()方法

例:

s = set([1, 2, 3])
s.add(4)
print s
set([1, 2, 3, 4])

s = set([1, 2, 3])
s.add(3)  #如果添加元素已存在,add()不会报错,但是不会加入进去
print s
set([1, 2, 3])

删除set中的元素,通过set的remove()方法

s = set([1, 2, 3, 4])
s.remove(4)
print s
set([1, 2, 3])

s = set([1, 2, 3])
s.remove(4) #删除不存在则会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 4
总结:用add()可以直接添加,用remove()前需要判断
 

译者介绍:家华,从事mysqlDBA的工作,记录自己的一些总结
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值