转载请注明出处:http://blog.csdn.net/sinat_14849739/article/details/78267782 本文出自Shawpoo的专栏 我的简书:简书
【Python学习笔记专栏】:http://blog.csdn.net/column/details/17658.html
除了上篇文章介绍的几种数据类型之外,Python还提供了几种内置的数据类型,有列表(list)、元组(tuple)、字典(dictionary)和集合(set)。
一、列表(list)和元组(tuple)
1、list(列表)
列表(list)是Python中最基本的数据结构。list是有序的集合,可以存放不同数据类型的数据,并且list中的每个元素的都对应着一个索引来标记其位置,且索引从0开始。
list的创建 创建一个list,只要把逗号分隔的不同的数据项使用方括号括起来即可。 list1 = ["Python", "Android", "Java", "C++"]
list2 = ["Git", "SVN", 2017, 2018]
list3 = [1, 2, 3, 4, 6 ]访问list中的元素 >>> list1[0] # 访问list1列表中的第一个元素
'Python'
>>> list2[2] #访问list2列表中的第三个元素
2017 我们可以通过len()函数来查看列表的长度,如: >>> len(list1)
4
>>> len(list3)
5 访问列表中最后一个元素,则索引为(列表的长度-1),倒数第二个的索引为(列表的长度-2),以此类推。 还有一种访问方式是,索引从-1开始,-2,-3…如: >>> list3[len(list3) - 1]
6
>>> list1[len(list1) - 1]
'C++'
>>> list1[-1]
'C++' 还有一种访问方式是索引:的形式,表示访问该索引(含)之后的所有元素,例如: >>> list1[1:]
['Android', 'Java', 'C++']list增加元素 list是一个可变的有序的,所以,可以往list中追加元素到末尾: >>> list1.append("JavaScript")
>>> list1
['Python', 'Android', 'Java', 'C++', 'JavaScript'] 也可以添加元素到指定位置,比如索引为1的位置: >>> list1.insert(1, "ios")
>>> list1
['Python', 'ios', 'Android', 'Java', 'C++', 'JavaScript']list修改元素 list中的元素也可以进行修改,通过索引直接进行替换: >>> list1[1] = 'Ruby'
>>> list1
['Python', 'Ruby', 'Android', 'Java', 'C++', 'JavaScript']list删除元素 list中的元素也可以删除,删除list中最后一个元素: >>> list1.pop()
'JavaScript'
>>> list1
['Python', 'Ruby', 'Android', 'Java', 'C++'] 通过索引进行删除: >>> list1.pop(1)
'Ruby'
>>> list1
['Python', 'Android', 'Java', 'C++'] 根据内容进行删除: >>> list1.remove('C++')
>>> list1
['Python', 'Android', 'Java'] 通过关键字def进行删除: >>> del list1[1]
>>> list1
['Python', 'Java']list的嵌套 list的嵌套,即list中的元素也是一个list: >>> a = [1, 2, 3]
>>> b = ['a', 'b', 'c']
>>> x = [a, b]
>>> len(x)
2
>>> len(x[0])
3
>>> x[0]
[1, 2, 3]
>>> x[1][0]
'a'list运算符 list对 + 和* 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
Python表达式结果描述len([1, 2, 3])3list的长度[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合[‘Hi~’] * 4[‘Hi~’, ‘Hi~’, ‘Hi~’, ‘Hi~’]重复3 in [1, 2, 3]True元素是否存在于list中for x in [1, 2, 3]: print(x, end=” “)1 2 3遍历list中的元素
2、tuple(元组)
Python的tuple与list类似,不同之处在于tuple中的元素不能进行修改。而且tuple使用小括号,list使用方括号。
tuple的创建 tuple创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 tuple1 = ("Python", "Android", "Java", "C++")
tuple2 = (1, 2, 3, 4, 6 ) 创建空的tuple,直接写小看括号即可: tuple3 = () 创建只有一个元素的tuple,需要在元素后面添加逗号,否则括号会被 当作运算符使用,我们可以通过 type()函数来查看类型: >>> t1 = (1)
>>> type(t1)
<class 'int'> # 整数类型
>>> t2 = (1,)
>>> type(t2)
<class 'tuple'> # tuple类型tuple的修改 tuple与list的最大区别就是tuple内的元素不允许修改: >>> t1[0] = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment 但是我们可以对tuple进行连接组合: >>> t1 = (1, 2, 3)
>>> t2 =('a', 'b', 'c')
>>> t3 = t1 + t2
>>> t3
(1, 2, 3, 'a', 'b', 'c') tuple中的元素为可变的数据类型,从而使tuple“可变”: >>> t = (1, 2, ['a', 'b'])
>>> l = ['a', 'b']
>>> t = (1, 2, l)
>>> t
(1, 2, ['a', 'b'])
>>> l[0] = 'python' # 修改tuple中列表l的值
>>> t
(1, 2, ['python', 'b'])tuple的删除 既然tuple是不可修改的,那么tuple中的元素也是不可删除的,但是我们可以通过del关键字将tuple直接删除掉: >>> t = (1, 2, 3)
>>> t
(1, 2, 3)
>>> del t
>>> t
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 't' is not definedtuple的索引操作和运算符 tuple的索引操作和运算符与list完全一样。 补充:tuple(list)函数:将list转换为tuple,list(tuple)函数:将tuple转换为list:
# list转tuple:
>>> l = [1, 2, 3]
>>> tuple(l)
(1, 2, 3)
# tuple转list:
>>> t = ('a', 'b', 'c')
>>> list(t)
['a', 'b', 'c']
二、字典(dictionary)和集合(set)
1、dict(字典)
字典是另一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中 ,格式如下所示:
格式:d = {key1 : value1, key2 : value2 }
例子:d = {1:"a", 2:"b", 3:"c"}
字典的特点 1、键必须是唯一的,不会重复,但值则不必。 2、值可以取任何数据类型,如字符串,数字或元组,但不能为列表,但键必须是不可变的。访问字典的元素 通过字典的key进行取值: >>> d = {"id": 2, "name":"Tom", "age": 18}
>>> d["name"]
'Tom' 如果key不存在就会报错,我们在访问之前进行判断是否存在这个key: >>> 'id' in d
True
>>> 'sex' in d
False 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value: >>> d.get('sex')
>>> d.get('sex', -1)
-1 ps:返回None的时候Python的交互式命令行不显示结果。 >>> d.items() # 打印所有键值对数据
dict_items([('id', 2), ('name', 'Tom'), ('age', 20)])
>>> d.keys() #打印dict的所有key
dict_keys(['id', 'name', 'age'])修改字典的元素 通过键取值,然后进行赋值: >>> d["age"] = 20
>>> d
{'id': 2, 'name': 'Tom', 'age': 20} 删除字典的元素 可以删除字典的key和整个字典: del dict['Name'] # 删除键 'Name'
dict.clear() # 删除字典
del dict # 删除字典
dict和list的比较 dict的查找和插入的速度极快,不会随着key的增加而变慢。但是需要占用大量的内存,内存浪费多。相反,list查找和插入的时间随着元素的增加而增加。但是占用空间小,浪费内存很少。
2、set(集合)
set()函数是创建一个无序不重复元素集,可添加,删除数据,还可以计算交集、差集、并集等。
set的语法 class set([iterable])
参数说明: iterable -- 可迭代对象对象;
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}set的元素操作 添加数据,可以重复添加,但会被过滤掉: >>> s.add(4)
>>> s
{1, 2, 3, 4} 删除数据: >>> s.remove(2)
>>> s
{1, 3, 4} set的交集、差集、并集操作: >>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2 # 交集
{2, 3}
>>> s1 | s2 # 并集
{1, 2, 3, 4}
>>> s1 - s2 # 差集
{1}set的特点 set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。