Python 列表、元组、字典及集合操作详解
一、列表
- 列表是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': ''}
>>> dict1
{'a': 1, 'b': ''} #因为键存在相同,所以后面的键值替换了前面的键值 >>> dict2 = {'Alice': '', 'Beth': '', 'Cecil': ''}
>>> dict2
{'Alice': '', 'Beth': '', 'Cecil': ''} >>> dict3 = { 'abc': 123, 98.6: 37 }
>>> dict3
{'abc': 123, 98.6: 37}
2、访问字典中的值
>>> dict2['Beth']
'' >>> dict2['Beth1'] # 如果字典中没有的键访问值,会输出以下错误
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'Beth1'
3、修改字典
>>> dict1
{'a': 1, 'b': ''}
>>> 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()
Python 列表、元组、字典及集合操作详解的更多相关文章
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python列表,元组,字典,集合详细操作
菜鸟学Python第五天 数据类型常用操作及内置方法 列表(list) ======================================基本使用====================== ...
- Python列表,元组,字典,字符串方法笔记
01. 列表 1.1 列表的定义 List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义,数据 之间使用 , 分隔 列 ...
- Python 列表,元组,字典
0)字符串切片 py_str = 'python' >>>py_str[0] #取第一个字符串,返回值为"p",超出范围会报错 >>>py_st ...
- Python 列表/元组/字典总结
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ...
- Python列表,元组,字典,序列,引用
1.列表 # Filename: using_list.py # This is my shopping list shoplist=["apple", "mango&q ...
- Python 集合set()添加删除、交集、并集、集合操作详解
集合:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.每个元素的地位都是相同的,元素之间是无序的. 创建集合set python set类是在python的sets模块中,大家现在使 ...
- 【277】◀▶ Python 列表/元组/字典说明
目录: 前言 一.访问列表中的值 二.更新列表 三.删除列表元素 四.Python 列表脚本操作符 五.Python 列表函数 & 方法 参考:Python 列表(List)使用说明 列表截取 ...
- python的dict()字典数据类型的方法详解以及案例使用
一.之前的回顾 # int 数字 # str 字符串 # list 列表 # tuple 元组 # dict 字典 字典中最重要的方法 keys() values() items() get upd ...
随机推荐
- Selenium入门15 截图
截图方法: 1 保存截图 get_screenshot_as_file('保存路径\\文件名.png') #有一个\是转义符 2 保存截图 save_screenshot('保存路径\\文件名 ...
- eplise中运行提示 A fatal error has been detected by the java runtime environment
今天一同事出现运行项目时,提示 A fatal error has been detected by the java runtime environment,具体表现是使用我们框架,不能正常的打印日 ...
- 过河问题(POJ1700)
题目链接:http://poj.org/problem?id=1700 解题报告: 1.贪心算法,每次过两个速度最慢的人,抵消那个较慢的人的时间. #include <stdio.h> # ...
- 使用taobao cnpm 源解决npm无法安装module问题
npm 安装nativescript时出现异常,一直停着不动.应该是源被墙了的问题可以使用淘宝仓库,执行下面的命令: alias cnpm="npm --registry=https://r ...
- python_1_变量的使用
print("hello word") name="Qi Zhiguang" print("My name is",name) name2= ...
- mysql如何查看错误代码具体释义?(基于perror)
mysql如何查看错误代码具体释义? 关键词:mysql错误代码,mysql错误号 perror 错误号
- malloc动态分配字符串数组“ 一个月内的提醒”
//输出一个月提醒 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_R ...
- Vscode插件--微信小程序格式化以及高亮组件wxml-vscode
wxml-vscode wxml-vscode 仓库 提问题 安装 通过 F1 或者 CMD + Shift + P 输入 install. 选择: Install Extension. 特性 格式化 ...
- C++ 类型转换(conv.)
隐式类型转换 总结自:隐式类型转换&算数运算符 定义:隐式类型转换是指使用了与表达式规定或当前语境不相符的类型时所进行的类型转换,但是要注意,可能会存在转换出现歧义,从而无法通过编译;一切带有 ...
- selenium学习总结
selenium主要用来做web自动化,分1.0和2.0两个版本,1.0包括selenium IDE.selenium Grid.selenium Remote Control,2.0在1.0的基础上 ...