首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python学习笔记(四)—列表(list)、元组(tuple)和字典(dictionary)、集合(set)

Python学习笔记(四)—列表(list)、元组(tuple)和字典(dictionary)、集合(set)

作者头像
用户7886150
修改2021-01-25 10:28:54
修改2021-01-25 10:28:54
7.5K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python字典clear()

转载请注明出处: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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档