Python 列表、元组、字典及集合操作详解

转自:https://www.cnblogs.com/Jimc/p/9584606.html

一、列表

  • 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型
  • 列表是一种有序的集合,可以随时添加和删除其中的元素
  • 列表的索引从0开始

1、创建列表

>>> list1 = [‘python‘, 2018, ‘python3‘, 1994]
>>> list1
[‘python‘, 2018, ‘python3‘, 1994]

>>> list2 = [1, 2, 3, 4]
>>> list2
[1, 2, 3, 4]

>>> list3 = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
>>> list3
[‘a‘, ‘b‘, ‘c‘, ‘d‘]

2、获取列表元素个数

>>> len(list1)
4

3、访问列表中的值

(1)使用索引来访问列表中的值,列表的索引从0开始:

>>> list1[0]
‘python‘
>>> list1[1]
2018
>>> list1[2]
‘python3‘
>>> list1[3]
1994
>>> list1[4]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: list index out of range

注意:当索引超出范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(list1) - 1。

(2)还可以获取列表最后一个元素:

>>> list1[-1]
1994

以此类推,可以获取倒数第2个、倒数第3个、倒数第4个:

>>> list1[-2]
‘python3‘
>>> list1[-3]
2018
>>> list1[-4]
‘python‘
>>> list1[-5]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: list index out of range

当然,倒数第5个元素已越界,需要注意一下。

(3)切片

截取列表前3个元素:

>>> list1[0:3]
[‘python‘, 2018, ‘python3‘]

>>> list1[:3]   #如果第一个索引是0,可以省略
[‘python‘, 2018, ‘python3‘]

倒数切片:

>>> list1[-2:]  #获取后2个元素
[‘python3‘, 1994]

>>> list1[-2:-1]
[‘python3‘]

前4个元素,每两个取一个:

>>> list1[:4:2]
[‘python‘, ‘python3‘]

所有元素,每3个取一个:

>>> list1[::3]
[‘python‘, 1994]

原样复制一个列表:

>>> list1[:]
[‘python‘, 2018, ‘python3‘, 1994]

4、合并列表

>>> list4 = list2 + list3
>>> list4
[1, 2, 3, 4, ‘a‘, ‘b‘, ‘c‘, ‘d‘]

5、更新列表

>>> list1
[‘python‘, 2018, ‘python3‘, 1994]
>>> list1[1] = 2017
>>> list1
[‘python‘, 2017, ‘python3‘, 1994]

6、删除列表

>>> del list4

7、清空列表

>>> list1
[‘python‘, 2017, ‘python3‘, 1994]
>>> list1.clear()
>>> list1
[]

8、列表操作的函数和方法

列表操作包含以下函数:

cmp(list1, list2)  #比较两个列表的元素
len(list)         #列表元素个数
max(list)       #返回列表元素最大值
min(list)      #返回列表元素最小值
list(seq)     #将元组转换为列表     

列表操作包含以下方法:

list.append(obj)       #在列表末尾添加新的对象
list.count(obj)      #统计某个元素在列表中出现的次数
list.extend(seq)      #在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)      #从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) #将对象插入列表
list.pop(obj=list[-1]) #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)     #移除列表中某个值的第一个匹配项
list.reverse()      #反向列表中元素
list.sort([func])    #对原列表进行排序

二、元组

元组(tuple)和列表(list)非常类似,但是元组一旦初始化就不能修改,且元组使用小括号而列表使用中括号。

1、创建元组

>>> tup1 = (‘python‘, 2018, ‘python3‘, 1994)
>>> tup1
(‘python‘, 2018, ‘python3‘, 1994)

>>> tup2 = (1, 2, 3, 4)
>>> tup2
(1, 2, 3, 4)

>>> tup3 = (‘a‘, ‘b‘, ‘c‘, ‘d‘)
>>> tup3
(‘a‘, ‘b‘, ‘c‘, ‘d‘)

注意:元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义

>>> tup4 = (‘hello‘,)

2、合并元组

>>> tup5 = tup2 + tup3
>>> tup5
(1, 2, 3, 4, ‘a‘, ‘b‘, ‘c‘, ‘d‘)

3、删除元组

>>> del tup5
>>> tup5 #此时tup5已不存在,所有报错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name ‘tup5‘ is not defined

元组的操作基本与列表的操作一直,除了不能修改元组本身外。

三、字典

  • 字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型
  • 字典在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度
  • 字典中键是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

1、创建字典

>>> dict1 = {‘a‘: 1, ‘b‘: 2, ‘b‘: ‘3‘}
>>> dict1
{‘a‘: 1, ‘b‘: ‘3‘}  #因为键存在相同,所以后面的键值替换了前面的键值

>>> dict2 = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}
>>> dict2
{‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}

>>> dict3 = { ‘abc‘: 123, 98.6: 37 }
>>> dict3
{‘abc‘: 123, 98.6: 37}

2、访问字典中的值

>>> dict2[‘Beth‘]
‘9102‘

>>> dict2[‘Beth1‘]  # 如果字典中没有的键访问值,会输出以下错误
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: ‘Beth1‘

3、修改字典

>>> dict1
{‘a‘: 1, ‘b‘: ‘3‘}
>>> dict1[‘b‘] = 666
>>> dict1
{‘a‘: 1, ‘b‘: 666}

4、删除字典元素

能删单一的元素也能清空字典,并且可以直接删除字典

>>> dict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘}
>>> dict
{‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘}
>>> del dict[‘Name‘]  #删除键是‘Name‘的条目
>>> dict
{‘Age‘: 7, ‘Class‘: ‘First‘}
>>> dict.clear()  #清空词典所有条目
>>> dict
{}
>>> del dict  #删除词典

5、字典内置函数和方法

Python字典包含了以下内置函数:

cmp(dict1, dict2)  #比较两个字典元素。
len(dict)          #计算字典元素个数,即键的总数。
str(dict)          #输出字典可打印的字符串表示。
type(variable)     #返回输入的变量类型,如果变量是字典就返回字典类型。        

Python字典包含了以下内置方法:

dict.clear()                     #删除字典内所有元素
dict.copy()                   #返回一个字典的浅复制
radiansdict.fromkeys()            #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None)        #返回指定键的值,如果值不在字典中返回default值
dict.has_key(key)                  #如果键在字典dict里返回true,否则返回false
dict.items()                  #以列表返回可遍历的(键, 值) 元组数组
dict.keys()                  #以列表返回一个字典所有的键
dict.setdefault(key, default=None)    #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
dict.update(dict2)                  #把字典dict2的键/值对更新到dict里
dict.values()                     #以列表返回字典中的所有值

四、集合

集合(set)是一个无序不重复元素的序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

1、创建集合

#创建一个空集合
>>> set1 = set()
>>> set1
set()

#创建一个具有数据的集合
>>> set2 = {1, ‘a‘, ‘apple‘, 11.22}
>>> set2
{11.22, 1, ‘apple‘, ‘a‘}

>>> set3 = set([1, 2, 3])
>>> set3
{1, 2, 3}

2、判断元素是否在集合内

>>> ‘apple‘ in set2
True
>>> ‘apple‘ not in set2
False

3、添加元素

#将值添加到集合中,如果值存在,则不作任何操作
>>> set2.add(‘car‘)
>>> set2
{1, ‘apple‘, ‘car‘, 11.22, ‘a‘}

#另外一种添加方式,参数可以是列表、元组、字典等
>>> set2.update({2,3})
>>> set2
{1, ‘apple‘, 2, 3, ‘car‘, 11.22, ‘a‘}

>>> set2.update([1,4],[5,6])
>>> set2
{1, ‘apple‘, 2, 3, 4, 5, 6, ‘car‘, 11.22, ‘a‘}

4、删除元素

>>> set2.remove(‘car‘)
>>> set2
{1, ‘apple‘, 2, 3, 4, 5, 6, 11.22, ‘a‘}

>>> set2.remove(‘hello‘) #如果元素不存在会发生错误
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: ‘hello‘

#这种方式如果元素不存在不会发生错误
>>> set2.discard(‘hello‘)

5、计算集合元素个数

>>> len(set2)
9

6、清空集合

>>> set2.clear()
>>> set2
set()

原文地址:https://www.cnblogs.com/lyxcode/p/11698495.html

时间: 2024-10-29 03:11:28

Python 列表、元组、字典及集合操作详解的相关文章

python进阶学习chapter02(列表、字典、集合操作)

如何在列表.字典.集合中筛选数据 列表(元组)的重命名 词频统计的实现 字典的排序 寻找多个字典的公共键 如何让字典保持有序 如何保持历史纪录(使用deque队列) 一.如何在列表.字典.集合中筛选数据 问题引入: 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3,8,6,7,5} 找出所有被3整除的数 列表: #方法一,迭代 data=[1,5,-4,-6,0,7,9] res=[] fo

Python字典、集合结构详解

目录 字典 导言 什么是字典 字典的主要特征 访问字典的值 创建空字典并添加键--值对 修改字典中的值 删除键--值对 遍历字典 遍历所有键--值对 遍历字典中的键 遍历字典中的值 通过映射函数创建字典 集合 导言 什么是集合 set()函数 计算集合元素个数 集合添加.删除元素 添加元素 删除元素 删除.清空集合 删除整个集合 清空集合 集合的交集.并集和差集运算 运算符进行运算 函数实现 参考资料: 例题讲解 四则运算(用字典实现 题目分析 代码实现 列表去重 题目分析: 代码实现 通过两个

Python 集合set()添加删除、交集、并集、集合操作详解

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 集合添加.删除 python 集合的添加有两种常用方法,分别是add

Python列表 元组 字典 集合

元组 Python中的元组(Tuple)类似于Java中的数组,一旦创建了一个 tuple,就不能以任何方式改变它.这点与Python中的字符串类似,所以我们说元组和字符串都是不可变的序列.元组也支持索引和分片操作. 定义一个元组使用一对小(圆)括号” ( ) “. #定义一个元组 tuple1 = (1, 2, '3', 4, '5') # 定义了一个元组之后就无法再添加或修改元组中的元素 print tuple1[0] # 元组的元素都有确定的顺序.元组的索引也是以0为基点的 print t

python 列表 元组 字典

一.列表 一组有序项目的集合.可变的数据类型[可进行增删改查] 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表中可以包含任何数据类型,也可包含另一个列表 列表可通过序号访问其中成员 常用列表操作: list.append()追加成员,成员数据 list.pop()删除成员,删除第i个成员 list.count(x)计算列表中参数x出现的次数 list.remove()删除列表中的成员,直接删除成员i list.extend(L)向列表中追加另一个列表L list.revers

python中列表 元组 字典 集合的区别

列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

【八】列表、字典、集合、元组间的数据类型转换总结

一:列表:list[] 增 In [125]: a=[] #新增方法1 In [126]: a.append("hello") In [127]: a Out[127]: ['hello'] #新增方法2 In [128]: a.insert(0,"huahua") In [129]: a Out[129]: ['huahua', 'hello'] 删 In [131]: a Out[131]: ['huahua', 'hello'] #删除方法1 In [132]

Python3字典操作详解 Python3字典操作大全

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:sking 4 #Python3字典操作详解 Python3字典操作大全 5 6 #字典是无序的(因为它没有下标),key必须是唯一的 7 #字典是可变的,可以修改和添加 8 #创建字典 9 info = {'haha':12,'heihei':13,'wowo':45} 10 #查找字典的值value 11 #方法1 12 print(info['heihei']) #13 此