Python基础【数据结构:列表 | 元组 | 集合 | 字典】

序列


序列是Python中最基本的数据结构。
包括字符串,列表,元组,Unicode字符串,buffer对象,xrange对象
序列中的每个元素都分配一个数字,即它的索引
第一个索引是0,第二个索引是1,依此类推。


列表和元组

列表
一个方括号内的逗号分隔值
列表中可以存放不同的数据类型。

例:[1,1.2,True,‘str‘,[2,False]]
元组
与列表类似,不同之处在于元组的元素不能修改
元组使用小括号,列表使用方括号。

例:(1,1.2,True,‘str‘,[2,False])


列表和元组的定义

列表的定义
一个方括号内的逗号分隔值
列表中可以存放不同的数据类型。

例:
list_define=[1,1.2,True,‘str‘,[2,False]]
list_define=[] ##定义空列表
元组的定义
与列表类似,不同之处在于元组的元素不能修改
元组使用小括号,列表使用方括号。
元组中只包含一个元素时,需要在元素后面添加逗号

例:
tuple_define=(1,1.2,True,‘str‘,[2,False])
tuple_define=() ##定义空元组,元组中只有一个元素时需加上逗号


列表和元组的特性

索引

list[0] ##list中的第一元素
list[-1] ##list中的最后一个元素
list[:] ##返回包含list中的所有元素的列表
list[1:] ##返回包含list中从第二个元素开始的所有元素的列表
list[:2] ##返回包含list中倒数第二个元素及之前的元素的列表
list[::-1] ##返回包含list中倒序元素排列的列表

切片

list[0] ##list中的第一元素
list[-1] ##list中的最后一个元素
list[:] ##返回包含list中的所有元素的列表
list[1:] ##返回包含list中从第二个元素开始的所有元素的列表
list[:2] ##返回包含list中倒数第二个元素及之前的元素的列表
list[::-1] ##返回包含list中倒序元素排列的列表

重复

list*2 ##返回两遍list

连接

list1 + list2 ##拼接list1和list2,返回拼接后的列表

嵌套

list[4][0] ##第五个元素[2,False]中的第一个元素

成员操作

a in list                ##a存在于list中返回True,否则返回False
a not in list          ##a不存在于list中返回True,否则返回False

迭代

for i in list ##遍历list中的元素


常用方法

列表的常用方法

list.attend(‘str‘) ##追加一个成员在列表list的末尾
list.extend(list2) ##追加一个list2在列表的末尾
list.insert(n,‘str‘) ##将‘str‘插入列表list至索引为n的位置
list.pop(n) ##弹出(删除并返回)list中索引为n的元素
list.remove(‘str‘) ##删除list中的元素‘str‘
list.clear() ##清空list
del list[0] ##删除list中第一个元素并释放内存
list.count(‘str‘) ##返回元素‘str‘出现的次数
list.index(‘str‘,n,m) ##返回索引值在n~m之间元素第一次出现‘str‘的索引值
list.sort(reverse=True) ##返回按照ASCII排序的列表
list.sort(key=str.lower) ##返回按照小写字母排序的列表
list.reserse() ##逆序排列列表list,无返回值
list.copy() ##复制整个列表到新的内存地址中去并返回list
min,*middle,max = list ##返回首个,除去首尾的列表,和末尾的三个值

元组的常用方法

tuple.index(a) ##返回a在tuple中第一次出现的索引值
tuple.count(a) ##返回a在tuple中出现的次数
由于元组属于不可变数据类型,因此不具有增删改插的方法


常见应用

  • 交换变量值
    a = 1
    b = 2
    a,b = b,a
  • 批量赋值
    a,b,c=(1,2,3)
  • 计分器
    scores =[100,90,80,70,60]
    scores = sorted(scores)
    min,*middle,max = scores

集合

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

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


定义

set = {1,2,3}
set = {[]}

成员操作符

s in set ##s存在于set返回True,否则返回False
s not in set ##s不存在于set返回True,否则返回False

迭代

for i in set: ##利用i遍历set里的成员
for i,v in enumerate(set) ##i遍历(索引),v遍历成员


方法

  set.add(s)          ##添加s到set集合中返回添加后的集合

set.pop(s) ##删除set集合中的s返回删除的元素(默认第一个)
set.remove(s) ##删除set集合中的s,无返回值,set中不存在s会报错
set.discard(s) ##删除set集合中的s,无返回值

并集

set1.union(set2) ##返回set1和set2的交集
set1|set2 ##同上

交集

set1&set2 ##返回set1和set2的交集
set1.isdisjoint(set2) ##set1和set2相交返回True,否则返回False

差集

set1-set2 ##返回set1和set2的差集
set1.difference(set2) ##同上

对等差分

set1^set2 ##返回set1和set2的对等差分
set1.symmetric_difference(set2) ##同上

子集和超集

set1.issubset(set2) ##set1是set2的子集返回True,否则返回False
set1.issuperset(set2) ##set1是set2的超集返回True,否则返回False



字典

key-value 键值对应存储的一种数据结构

  • 序列是以连续的整数为索引,字典以关键字为索引
  • 关键字可以是任意不可变类型,通常用字符串或数值
  • 理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。
    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

定义

一对大括号创建一个空的字典:{}
dict =
{
‘key1‘:value1,
‘key2‘:value2,
‘key3‘:value3
}
{}.fromkeys({key1,key2},‘str‘)  ##{}.fromkeys()第一个参数可以是list/tuple/str/set,所有key的value值一致
d = dict(key1=value1,key2=value2)  ##工厂函数定义

嵌套

d =
{
‘key‘:
{
‘key01‘:value1,
‘key02‘:value2,
‘key03‘:value3
}
}

字典特性

  • 字典不支持索引/切片/重复/连接
  • 成员操作符判断的是字典中的key
  • for循环默认遍历字典的key值
  • 可通过传递key值遍历字典的value值

增加元素

d[‘key‘]=value    ##key存在则更新,否则增加新的key-value对
dict2 ={
‘key1‘:value1
‘key2‘:value2
}
d.update(dict2)  ##将dict2的key-value对加入d中
d.update(key1=value1,key2=value2)  ##增加多个key-value对,这里key只支持str类型
d.setdefault(key,value) ##如果key存在则不改变,否则增加新的key-value对

删除元素

del d[‘key‘]  ##删除对应key的key-value值
d.pop(‘key‘)  ##删除对应key的key-value值,返回对应的value值
d.popitem()   ##默认删除最后一个key-value值,返回对应的value值
d.clear()     ##清空字典

查看和修改

d.keys()     ##显示d中的keys
d.values()   ##显示d中的values
d.get(‘key‘,0) ##存在key返回对应value,不存在返回0

迭代

for i,v in d:
print(i,‘---->‘,v)
for i in d:
print(i,‘---->‘,d[i])

原文地址:http://blog.51cto.com/13992211/2325765

时间: 2024-10-03 06:17:59

Python基础【数据结构:列表 | 元组 | 集合 | 字典】的相关文章

【python基础】列表推导式&字典推导式&集合推导式

一.定义 python的一种独有特性, 推导式是可以从一个数据序列构建另一个新的数据序列的结构体 列表推导式,字典推导式,集合推导式(集合是可变数据类型,集合中的元素是不可变数据类型) 1.列表推导式 提供了简单的生成列表的方法 (1)语法结构 ①list = [表达式 for item in 容器] ②list = [表达式 for item in 容器 if 条件] ③list = [表达式 for item1 in 容器1 for item2 in 容器2] (2)执行流程 ①循环遍历出容

python列表元组集合字典

一.列表 1.列表格式 list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; 2.列表访问 list1[0]:Google list2[1:5]:[2,3,4,5] 3.l列表更新 list2[2]=新的值 del list[2] 删除第三个元素 4.列表操作符 len(list1)=list1长度 [1,2,3]+[4,5,6]=[1,2,3,4,5,6] ["hi"]*4=["hi"

python基础操作_元组_字典操作

#元组'''元组是不可变的列表,不能改.取值和列表一样'''tp=(1,2,3)tp1=('127.0.0.1','3307')#元组只有count 和index两个方法.lis=['127.0.0.1','8080']tuple(lis)#强制类型转换#字典,传说很重要#字典里的KYE不能重复info={ 'name':'xiaoming', 'id':1}print(info['name'])#取不到值的时候会报错print(info.get('name'))#取不到的时候报空print(i

python基础三(列表和元组)

数据结构:数据结构是以某种方式(如通过编号)组合起来的数据元素集合.在python中,最基本的数据结构为序列,序列中每个元素都有编号从0开始. 1.序列概述:?python内置了许多种序列,列表.元组.字符串等.?列表和元组的不同在于,列表是可以修改的,而元组不可以,这意味着列表用于需要中途添加元素的情形,而元组适用于禁止修改元素的情形. 1.1.创建列表 假设你现在需要一个东西来储存多个名字,那么用列表正合适 list_name = ["王晓明","李二"] #所

Python基础语法—字符串&语句&集合

Python字符串 Python中不支持char单字符类型,单字符在Python中也是一个字符串 Python字符串更新 更新Python字符串方法 1234 var1 = 'Hello World!'print "Updated String :- ", var1[:6] + 'Python' 实际执行效果为 Updated String :- Hello Python Python转义字符 Python字符串运算符 Python字符串格式化 Python三引号(triple quo

python基础之列表

Python基础之列表 一.列表的切片与增删改查 li = ['李白','韩信','兰陵王','娜可露露','赵云','露娜','王昭君'] #切片与字符串一样,索引值都是从0开始,所用得方法都一样[:][:-1][0:-1][2:4][:4][4:][1:-2:2][1:-3:-2] #列表增append(),insert li.append('关羽') #后面加入['李白', '韩信', '兰陵王', '娜可露露', '赵云', '露娜', '王昭君', '关羽'] print(li) li

2.python基础之—列表,元组,字典,集合,字符串的使用方法

一.关于python序列的简介. python里面的序列大部分都可以执行,索引,切片,加,乘,检查长度,以及检查某个成员是否存在,甚至还可以找出这个序列中最小的元素和最大的元素,并且序列都是可迭代的. 解释下个人理解的迭代,迭代(iteration),序列中的迭代就是对序列中的每个元素重复执行某些操作/ 具体的迭代方式后面会说到. 下面就说说python序列的共有特点. 1.索引 一个序列中,所有的元素都有自己的编号,这个编号是从0开始的,这个编号就是所谓的索引,这些元素可以通过索引来依次访问.

Python基础2 列表、字典、集合

本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Alex' >>> names[2] 'Eric' >>> names[-1] 'Eric'

列表/元组/字符串/字典/集合/文件/字符编码

1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 1 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 1 2 3 4 5 6 7 8 >>> names[0] 'Alex' >>> names[2] 'Eric' >>> names[-1] 'Eric' >>> names[-2] #