Python3.x下列表,元组,集合,字典等工作中常用操作
平时工作中在处理一些数据上经常会用到几种数据结构的操作,list,tuple,dict,set
list:
基本操作:
append() 在尾部添加元素(常用)
insert(i,item) 在指定位置添加元素
extend()或者”+” 列表合并
del[i] 删除索引i下的元素
remove() 删除指定元素
i in list 判断元素i是否在list中(常用)
pop() 默认删除最后一个元素
pop(i) 指定位置取出索引i下的元素
index(i) 找出i的第一个匹配项的索引位置
clear() 清空列表(很少用)
reverse() 列表反转(很少用)
l1.count(1) 元素1在列表l1中出现的次数(常用)
len(l1) 计算列表长度(常用)
切片(不仅适用于列表list,也适用于字符串string)
l1 = [1,2,3,4,5] l1[0:3] # [1,2,3] l1[:3] # 等同于上面 l1[:] # 列表全部值 l1[3:] # [4,5] l1[0:4:2] # [1,3] l1[::2] # 取所有值,步长为2 [1,3] l1[::-1] # 列表反转 [5,4,3,2,1]
sorted() 排序,默认升序(reverse=False),降序可以通过添加参数reverse=True来实现
如果遇到list中包含很多个小list,每个小list有几个元素,想按照某个位置的元素大小进行排序
from operator import itemgetter,attrgetter # 按照每个小list的第二个元素,从大到小排序 sorted(l1,key=itemgetter(1),reverse=True)
升级一点的操作:
列表中的元素求和 sum(a,b,c)
多个list之间按顺序相加减乘除(常用)
# 方法一 import numpy as np l1 = np.array([a,b,c]) l2 = np.array([d,e,f]) sum_list = list(l1 + l2) # 方法二 l1 = [a,b,c] l2 = [d,e,f] l3 = [x+y for x,y in zip(l1,l2)]
多个list的元素按顺序合并:(常用)
l1 = [1,2,3] l2 = [4,5,6] l3 = list(zip(l1,l2)) # [(1,4),(2,5),(3,6)]
将一个列表分割成几个小列表(列表表达式的应用)
l1 = [i for i in range(9)] n = 3 l2 = [l1[i:i+n] for i in range(0, len(l1),n)] # [[0,1,2],[3,4,5],[6,7,8]]
列表中有小列表,现在要去除小列表的括号(可以计算每个小列表的和,并且放在列表头
l1=[[0,1,2],[3,4,5],[6,7,8]] temp = [] for i in l1: temp.append(sum(i)) for j in i: temp.append(j) print(temp) # [3,0,1,2,12,3,4,5,21,6,7,8]
tuple:
创建元组(只有一个元素时,在元素后面加逗号,否则会被当成其他数据类型处理):
tup = (1,) print(type(tup)) # <'tuple'> tup = (1) print(type(tup)) # <'int'>
列表转元组,元组转列表(常用)
tup = (1,2,3) l1 = list(tup) # [1,2,3] l2 = [1,2,3] t1 = tuple(l2) # (1,2,3)
索引,切片,计算元组长度,计数等和list的操作一样
元组没有列表中的增、删、改的操作,只有查的操作
元组中的元素是不允许删除的,但可以使用del语句来删除整个元组
set:
无序且不重复的集合
创建空集合
s = set()
比较
se = {11, 22, 33} be = {22, 55} temp1 = se.difference(be) #找到se中存在,be中不存在的集合,返回新值 print(temp1) #{33, 11} print(se) #{33, 11, 22} temp2 = se.difference_update(be) #找到se中存在,be中不存在的集合,覆盖掉se print(temp2) #None print(se) #{33, 11},
删除
se = {11, 22, 33} se.discard(11) se.discard(44) # 移除不存的元素不会报错 print(se) se = {11, 22, 33} se.remove(11) se.remove(44) # 移除不存的元素会报错 print(se) se = {11, 22, 33} # 移除末尾元素并把移除的元素赋给新值 temp = se.pop() print(temp) # 33 print(se) # {11, 22}
取交集
se = {11, 22, 33} be = {22, 55} temp1 = se.intersection(be) #取交集,赋给新值 print(temp1) # 22 print(se) # {11, 22, 33} temp2 = se.intersection_update(be) #取交集并更新自己 print(temp2) # None print(se) # 22
判断
se = {11, 22, 33} be = {22} print(se.isdisjoint(be)) #False,判断是否不存在交集(有交集False,无交集True) print(se.issubset(be)) #False,判断se是否是be的子集合 print(se.issuperset(be)) #True,判断se是否是be的父集合
合并
se = {11, 22, 33} be = {22} temp1 = se.symmetric_difference(be) # 合并不同项,并赋新值 print(temp1) #{33, 11} print(se) #{33, 11, 22} temp2 = se.symmetric_difference_update(be) # 合并不同项,并更新自己 print(temp2) #None print(se) #{33, 11}
取并集
se = {11, 22, 33} be = {22,44,55} temp=se.union(be) #取并集,并赋新值 print(se) #{33, 11, 22} print(temp) #{33, 22, 55, 11, 44}
更新
se = {11, 22, 33} be = {22,44,55} se.update(be) # 把se和be合并,得出的值覆盖se print(se) se.update([66, 77]) # 可增加迭代项 print(se)
集合的转换(转list,tuple等)
se = set(range(4)) li = list(se) tu = tuple(se) st = str(se) print(li,type(li)) print(tu,type(tu)) print(st,type(st)) OUTPUT: [0, 1, 2, 3] <class 'list'> (0, 1, 2, 3) <class 'tuple'> {0, 1, 2, 3} <class 'str'>
dict:
key是唯一的且不可变
value可以是任意数据类型
dict[key] 访问字典的值
cmp(dict1,dict2) 比较两个字典元素
len(dict1) 计算键的总数
str(dict1) 输出字典中可打印的字符串
dict.clear() 删除字典内所有元素
dict.copy() 返回一个字典的浅复制
dict.fromkeys(key,value) 创建一个新字典
dict.get(key,default=None) 返回指定key的值,如果值不存在返回default的值
dict.has_key(key) 如果key在字典中,返回True,否则返回False
dict.items() 以列表返回可遍历的(key,value)元组数组(常用)
dict.keys() 以列表返回一个字典中的所有key(常用)
dict.setdefault(key,default=None) 和get类似,如果key不存在于dict中,将会添加key并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.values() 以列表返回字典中的所有值(常用)
key in dict1 如果键在字典dict里返回true,否则返回false(常用)
d1 = {'name':'Frank','age':23, 'gender':'male'} d2 = {'height':180} print(list(d1.values())) # ['Frank',23,'male'] 无序的 print(list(d1.keys())) # ['name', 'gender', 'age'] 无序的 print(list(d1.items())) # [('gender', 'male'), ('age', 23), ('name', 'Frank')] 无序的 d1.update(d2) # {'gender': 'male', 'height': 180, 'name': 'Frank', 'age': 23} print('age' in d1) # True阅读更多
- python实操(5):python数据类型及常用操作,数字、字符串、元组、列表、字典、集合
- python3的列表、元组、集合、字典操作
- python学习-1-列表,元组,字典,集合,文件操作
- python学习-1-列表,元组,字典,集合,文件操作
- [置顶] Python联系笔记2[列表,元组,集合,字典,函数,文件操作,模块,类]
- Python基础:列表,元组,字典,集合相关基本操作
- python 列表、元组、字典 增删改查 等常用操作
- python 列表、元组、字典 增删改查 等常用操作
- Python中几种数据结构的整理,列表、字典、元组、集合
- python入门:基础,列表、元组、字典及集合类型
- python 列表,元组,字典,集合简单总结
- python之列表(list),元组(tuple),集合(set),字典(dict)
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
- Python基础【数据结构:列表 | 元组 | 集合 | 字典】
- Python总结(字符串、列表、元组、字典、集合和文件)
- python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
- Python学习笔记二:列表、字典、元组、集合 简介
- Python学习笔记ucas(lecture2)数据结构(字符串、列表、元组、字典、集合)
- 003——Python内建数据结构列表(list)、元组(tuple)、字典(dict)、集合(set)