Python基础-list,tuple,dict,set常用方法及区别
1,列表list
列表定义方式
lis1=[1,2,3,4]#一维数组
lis2=[1,2,3,[4,5,6]]#二维数组
依次多有多维数据,套几层就是几维数组
列表的取值可以通过下标来,下标都是从0开始,对列表的增删改查;
增:
msg = '你好'
name = ['andashu','cc','niuniu']
name.append(msg)#从最后面开始插入
name.insert(1,msg) #从指定位置插入,这个1代表下标
print(name)
改:
msg = '你好'
name = ['andashu','cc','niuniu']
name[1] = 'baby' #修改指定位置的值
查:
msg = '你好'
name = ['andashu','cc','niuniu']
print(name[0])#获取第一个元素
print(name[-1])#-1代表最后一个元素
删:
msg = '你好'
name = ['andashu','cc','niuniu']
name.remove('baby')#删除指定的值
del name[0]#删除指定位置的值
name.pop()#不传入下标的话,删除最后一个值,传入下标删除指定位置的值
name.clear()#清空列表
常用的内置方法:
name = ['andashu','cc','niuniu']
name2 = [1,2,3,4,['hehe','haha']]
print(name.index('niuniu'))#取索引
print(name.count('cc'))#取cc出现的次数
name.clear()#清空列表
print(name.sort())#排序,根据阿斯克码来排序
print(name.extend(name2))#扩展列表,也就是把name2的值加到name里面
name.reverse()#反转数组,会改变原数组的值
list的取值也可以通过切片的方式:
从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样
names = ['andashu','cc','niuniu','amy','lily']
names[1:4] #取下标1至下标4之间值,包括1,不包括4
names[1:-1] #取下标1至-1的值,不包括-1
names[0:3] #取下标0至3的值,不包括3
names[:3] #取下标0至3的值,不包括3,和上面的效果一样,0可以省略不写
names[2:]#取从第二个下标开始的后面所有元素
#下面是加上步长的
nums = [1,2,3,4,5,6,7,8,9,10]
nums[::2]#这个代表取所有的元素,然后每隔2个元素取一个
nums[1:8:3]#代表取第二个元素开始,到第八个结束,隔3个取一次
2,元组tuple,
元组的值是不能改变的,元组的定义用()圆括号,元组一般用来存放程序中不变的数据,例如jdbc的连接数据,元组的只有两个内置方法index(),count()
3,字典dict
字典是一种key-value的定义方式,用{},比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。
字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的增删改查:
增:
infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
infos['andy'] = [22, 18712512981, '河北'] # 增加
修改:
infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
infos['marry'] = [38, 18612512981, '北京']
删除:
infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
infos.pop('marry') # 标准的删除方法
del infos['marry'] # 使用del方法删除
info.popitem() # 随机删除一个值
查询:
infos = {'marry': [18, 18612512981, '北京'], 'amy': [20, 18612512991, '山东'], 'lily': [25, 18612532981, '河南']}
infos.get('maryy') # 获取marry的信息,这种方式如果key不存在的话,会返回None
infos['marry'] # 获取marry的信息,这种方式如果key不存在的话,会报错
'marry' in infos # 判断marry是否在这个字典中,返回True或者False
字典的内置方法:
dic = {'stu1': 'cc', 'stu2': 'andashu', 'stu3': 'niuniu'}
print(dic.values()) # 打印所有value
print(dic.keys()) # 打印所有的key
print(dic.setdefault('stu1', 'fengluo')) # 如果这个key存在的话,那就不动它,不存在的话,添加一个
dic2 = {'stu1': 'sriba', 'stu10': 'baidu'}
dic.update(dic2) # 更新字典值,如果key存在的话,就更新,不存在的话就添加
print(dic.items()) # 字典转换成一个list
循环字典:
dic = {'stu1':'cc','stu2':'andashu','stu3':'niuniu'}
for k in dic:
print(k,dic[k])#打印key和value的值,推荐使用这种方式,速度快
集合:
集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据
list = [2,3,1,2,3,4]
s_list = set(list)#这样就定义了一个集合
set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合
set2={'hehe','hehe1','hehe3'}#这种方式是直接定义一个集合 list1 = {1, 2, 3, 4, 5, 6, 9}
list2 = {2, 3, 4, 6, 1}
list3 = {1, 2, 3}
print(list1.intersection(list2)) # 取交集,也就是取list1和list2中都有的
print(list1 & list2)# 取交集
print(list1.union(list2)) # 取并集,也就是把list1和list2合并了,然后去除重复的
print(list1 | list2)# 取并集
print(list1.difference(list2)) #取差集 在list中存在,在list2中没有的
print(list1 - list2)
print(list3.issubset(list1))#判断list3是不是list1的子集
print(list1.issuperset(list3))#判断list1是不是list3的父集
print(list1.isdisjoint(list3))#判断list1和list3是否有交集
print(list1.symmetric_difference(list2))#对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉
print(list1 ^ list2)
list1.add(888)#添加元素
list1.update([777,666,666])
list1.remove(777)#删除元素,如果元素不存在会报错
list1.pop()#删除一个随机的元素,并返回删除的元素
list1.discard('dddd')#如果删除的元素存在,删除,不存在不做处理
Python基础-list,tuple,dict,set常用方法及区别的更多相关文章
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- Python中list,tuple,dict,set的区别和用法
Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...
- Python中list,tuple,dict,set的区别和用法(转)
原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...
- Python容器--list, tuple, dict, set
## Python 中有四种用于存放数据的序列--list, tuple, dict, set ## list 列表 - 可以存放任意类型数据的有序序列 - 列表可以由零个或多个元素组成,元素之间用逗 ...
- python基础——元组(tuple)
Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tuple1 = () tuple2 = ...
- Python基础——字典(dict)
由键-值对构建的集合. 创建 dic1={} type(dic1) dic2=dict() type(dic2) 初始化 dic2={'hello':123,'world':456,'python': ...
- Python基础 之 tuple类-元组 和 dict类-字典
tuple 元组 一.tuple 类的基本属性 1.元组,有序:元素不可被修改,不能被增加或者删除tuple类 tu = (111,22,33,44) 一般写元组的时候,推荐在最后加入,和类方法进行区 ...
- python list 和 tuple, dict 用于迭代代价
#!/usr/bin/env python #-*- coding:utf-8 -*- import time start = time.time() for i in range(1000000): ...
- Python 基础数据类型之dict
字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d = {k ...
随机推荐
- Truck History - poj 1789 (Prim 算法)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20884 Accepted: 8075 Description Ad ...
- android requestLayout()重新请求布局
在应用中有时会遇到,例如你listView 的设置的高度为warp_content 自适应,listView下方有个TextView但如果你删了一个listView的item 我们希望下面的TextV ...
- php-fpm重启失败报错
php-fpm启动命令:/usr/local/php5/sbin/php-fpm 报错:ERROR: unable to bind listening socket for address '127. ...
- IOS启动页动画(uiview 淡入淡出效果 )2
Appdelegate里面右个这个函数,只要它没结束,你的等待界面就不会消失.以在启动的时候做些动画 - (BOOL)application:(UIApplication *)application ...
- XML使用总结(一)
XML使用总结(一): XML是一种可拓展的标记语言,被设计用来描写叙述.存储及传递数据的语言体,而它的标签没有被提前定义,须要用户自行定义,是W3C推荐的数据存储和传递的标准标记语言. · ...
- -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
本文转载至 http://blog.csdn.net/m372897500/article/details/38293973 -[ASIDataCompressor compressBytes:len ...
- lua例子(进出栈)
#include <stdio.h> extern "C" { #include "lua-5.2.2/src/lauxlib.h" #includ ...
- python is == 的区别, 编码与解码.深浅拷贝
一. is == 的区别 双等表示的是判断是否相等, 注意. 这个双等比较的是具体的值.而不是内存地址 is 比较的是地址 编码回顾 除了了ASCII码以外, 其他信息不能直接转换 编码和解码的时 ...
- This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its 错误解决办法
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary log ...
- ubuntu下操作端口的方法
最简单的一个操作:sudo ufw status可检查防火墙的状态,我的返回的是:不活动 sudo ufw version防火墙版本: ufw 0.29-4ubuntu1 Copyright 2008 ...