元组、字典、列表基础知识和比较

1. 元组

元组就是用逗号分隔的一组值,新建一个元组有两种方式,如下所示:

  • 使用内置函数tuple方式
>>> t = tuple('lupins')
>>> print t
('l', 'u', 'p', 'i', 'n', 's')
  • 不使用内置函数tuple,直接新建
>>> t = ('1','2','3','4','5')

需要注意的是,如果t里面只有一个元素,并没有逗号,则不是一个元组,而是字符串,代码如下:

>>> t1 = ('a')
>>> type(t1)
<type 'str'>

新建一个包含一个元素的元组,需要在后面添加一个逗号,如下:

>>> t2 = 'a',
>>> type(t2)
<type 'tuple'>

元组赋值

>>> a, b = b, a

左边是变量的元组,右边是表达式的元组,每个值赋值给相应的变量,其中在赋值之前会先求右边表达式的值。(左边值的个数必须和右边值的个数相等,右边可以是任意类型的序列

内置函数divmod接收两个参数,返回一个元组,里面包括商和余数

>>> t = divmod(7,3)
>>> print t
(2, 1)

或者:

>>> quot, rem = divmod(7,3)
>>> print quot
2
>>> print rem
1

或者:

>>> def min_max(t):
...     return min(t), max(t)

函数可以接收不定个数的参数,以*开头的参数名会收集所有的参数到一个元组上。如:

>>> def printall(*args):
...     print args

元组之间的比较
Python会从每一个序列的第一个元素开始比较,如果相等,就比较下一个,找到不同的元素,后面的元素就不考虑了。

>>> (0,1,2) < (0,3,4)
True
>>> (0,1,200) < (0,3,4)
True

2. 列表

创建列表有不同的方式,主要介绍最常用的两种,如下所示:

  • 直接使用方括号括起来
>>> a = [10,20,30,40]
>>> b = ['a','b','c','d']
  • 使用内置函数list()创建一个列表
>>> list('Python')
['P', 'y', 't', 'h', 'o', 'n']

列表是可嵌套的,即列表里的元素可以仍为列表,并且列表中的元素不一定是同一类型,如下所示:

>>> ['Python',[1,2,3,4],3]
['Python', [1, 2, 3, 4], 3]

列表是可变的,可以被赋值和改变(删除、增加)

>>> t = [41,53]
>>> t[0] = 9
>>> t
[9, 53]

其中下标必须为整数或整型表达式,下标是负数,从列表的结尾反过来访问。

>>> t[-1]
53
>>> t[-2]
9

遍历一个列表中元素,主要有两种方式,如下所示:

  • 不使用下标,直接使用for循环和in操作符去遍历,直接读取列表元素本身
>>> t1 = ['a','b','c','d']
>>> for char1 in t1:
...     print char1
... 
a
b
c
d
  • 使用下标,可以写入或者更新元素
>>> for i in range(len(t1)):
...     t1[i] = t1[i] * 2
... 
>>> t1
['aaaa', 'bbbb', 'cccc', 'dddd']

列表的修改

  • +操作符用于拼接列表
>>> hit = [1,2,3]
>>> hit1 = [1,2,3]
>>> hit2 = [4,5,6]
>>> hit = hit1 + hit2
>>> hit
[1, 2, 3, 4, 5, 6]  #由结果知,不是简单对应相加,而是两个列表合并在一起
  • *操作符用于重复列表
>>> hit1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 列表可以使用下标进行索引
>>> hit[1:3]   #使用下标进行索引,包括第一个边界,不包括第二个边界
[2, 3]
>>> hit[:4]    #省略第一个下标,列表从头开始
[1, 2, 3, 4]
>>> hit[3:]    #省略第二个下标,列表至结尾结束
[4, 5, 6] 
>>> hit[:]     #两个下标都省略,复制整个列表
[1, 2, 3, 4, 5, 6]
>>> hit[1:3] = ['a','b']  #可以对列表多个元素赋值
>>> hit
[1, 'a', 'b', 4, 5, 6]

列表方法(重点)
列表方法有很多,下面主要介绍最常用的几个

  • append方法,在列表尾部添加新的元素,没有返回值
>>> hit.append(7)
>>> hit
[1, 'a', 'b', 4, 5, 6, 7]
  • extend方法,接收一个列表作为参数,参数中所有元素附加到列表中,没有返回值
>>> hit
[1, 'a', 'b', 4, 5, 6, 7]
>>> t = ['8','9']
>>> hit.extend(t)
>>> hit
[1, 'a', 'b', 4, 5, 6, 7, '8', '9']
  • sort方法,将列表中的元素从低到高重新排列,没有返回值
>>> t = ['e','a','d','f']
>>> t.sort()
>>> t
['a', 'd', 'e', 'f']
  • pop方法,接收列表中元素的下标作为形参,删除对应的元素,返回删除掉的值
>>> x = t.pop(2)
>>> x
'e'
>>> t
['a', 'd', 'f']
>>> x1 = t.pop()  #不提供形参,删除并返回最后一个元素
>>> x1
'f'
>>> t
['a', 'd']
  • remove方法,参数是要删除的元素,没有返回值
>>> t
['a', 'd']
>>> t.remove('a')
>>> t
['d']

3. 字典

创建字典的常用两种方式,如下所示:

  • 使用内置函数dict
>>> d = dict()
>>> d
{}
>>> d['one'] = 'two'
>>> d
{'one': 'two'}
  • 不使用内置函数
>>> d1 = {'one':'eno','two':'owt'}
>>> d1
{'two': 'owt', 'one': 'eno'}

字典查找
字典的元素不使用整数下标进行查找,它使用键来查找对应的值

>>> d1['one']
'eno'

len函数用在字典上,返回键值对数量

>>> len(d1)
2

in操作符用在字典上,用于确定一个值是不是字典中的键

>>> 'one' in d1
True

关于字典在实际中的应用,详见Github

未完待续,这是以前整理的,后面将陆陆续续放在博客上面!!

猜你喜欢

转载自blog.csdn.net/ge341204/article/details/49641895