python基础(三)列表、数组、字典
列表与元组
列表是最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
定义列表
1 >>> names = ['wangeq','zlx','jack','rose']
列表的几种操作方法
#通过下标访问列表中的元素,下标从0开始计数
>>> #查
>>> names[0]
'wangeq'
>>> names[0:3]
['wangeq', 'zlx', 'jack']
>>> names.index("rose")
3
>>> names
['wangeq', 'zlx', 'jack', 'rose']
>>> #增
>>> names.append('jun')
>>> names
['wangeq', 'zlx', 'jack', 'rose', 'jun']
>>> names.insert(2,'li')
>>> names
['wangeq', 'zlx', 'li', 'jack', 'rose', 'jun']
>>> #删
>>> names.remove('li')
>>> names.insert(2,'rose')
>>> names
['wangeq', 'zlx', 'rose', 'jack', 'rose', 'jun']
>>> names.remove('zlx')
>>> names
['wangeq', 'rose', 'jack', 'rose', 'jun']
>>> names.index('rose')
1
>>> del names[names.index('rose')]
>>> names
['wangeq', 'jack', 'rose', 'jun']
>>> #改
>>> names.index('jack')
1
>>> names[1]= 'JACK'
>>> names
['wangeq', 'JACK', 'rose', 'jun']
>>>
>>> names[names.index('JACK')] = 'jack'
>>> names
['wangeq', 'jack', 'rose', 'jun']
>>>
>>> #计数
>>> names = ['wangeq','rose','li', 'jack', 'rose', 'jun']
>>> names.count('rose')
2
>>> #排序
>>> names.sort()
>>> names
['jack', 'jun', 'li', 'rose', 'rose', 'wangeq']
>>> names.reverse()
>>> names
['wangeq', 'rose', 'rose', 'li', 'jun', 'jack']
>>> #扩展
>>> names = ['wangeq','rose','li', 'jack', 'rose', 'jun']
>>> names2 = ['wangeq','zhang','wang']
>>> names.extend(names2)
>>> names
['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang', 'wang']
>>> #清除列表所有内容
>>> names2
['wangeq', 'zhang', 'wang']
>>> names2.clear()
>>> names2
[]
>>> #剔除列表最后一个对象并返回
>>> names
['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang', 'wang']
>>> names.pop()
'wang'
>>> names
['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang']
71 >>> #复制 浅复制
72 >>> names
73 ['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang']
74 >>> names3= names.copy()
75 >>> names
76 ['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang']
77 >>> names3
78 ['wangeq', 'rose', 'li', 'jack', 'rose', 'jun', 'wangeq', 'zhang']
拓展:删除列表中第二个相同的对象(并无意义)
names = ['wangeq','li','zhou','jack','li','san'] first_index = names.index("li")
secode_index = names[first_index+1:].index("li")
del names[first_index+secode_index+1]
print(names)
元组:
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
>>> names = ("wang","zhou","zhang","li")
只有两种方法,
计数 count
标记下标 index
字典
字典一种key - value 的数据类型
语法:
info = {
'stu1101': "wangeq",
'stu1102': "zhangsan",
'stu1103': "lisi",
}
字典特性:
- dict是无序的
- key必须是唯一的,去重
字典功能:
查找
info = {
"stu1101",{"name":"wangeq","age":22},
"stu1102","zhangsan",
"stu1103","lisi"
}
print(info)
{'stu1103': 'alex', 'stu1102': 'jack', 'stu1101': {'name': 'wangeq', 'age': 22}}
print(info["stu1101"]["name"])
wangeq
print("stu1102" in info) #标准
True
print(info.get("stu1102")) #获取
jack
print(info["stu1102"]) #同上
jack
#print(info["stu1105"]) #key 不存在,KeyError: 'stu1105',get不会报错,会返回"None"
增加
info["stu1104"] = ["zhang",32,"abc"]
print(info)
3 {'stu1103': 'alex', 'stu1102': 'jack', 'stu1101': {'name': 'wangeq', 'age': 22}, 'stu1104': ['zhang', 32, 'abc']
更新
names["stu1104"][0] ="ZHANG"
print(names)
{'stu1103': 'alex', 'stu1102': 'jack', 'stu1101': {'name': 'wangeq', 'age': 22}, 'stu1104': ['ZHANG', 32, 'abc']}
删除
info.pop("stu1105","error") #删除stu1105,如不存在,返回error;标准删除
del info["stu1103"]
print(info)
{'stu1102': 'jack', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'age': 22, 'name': 'wangeq'}}
info.popitem() #随机删除
复制
#内置copy函数 浅复制
info2=info.copy() info["stu1102"] = "JACK"
print(info)
print(info2)
{'stu1102': 'JACK', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'age': 22, 'name': 'wangeq'}}
{'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'age': 22, 'name': 'wangeq'}, 'stu1102': 'jack'}
info["stu1101"]["age"] = 33
print(info)
print(info2)
{'stu1102': 'JACK', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'age': 33, 'name': 'wangeq'}}
{'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'age': 33, 'name': 'wangeq'}, 'stu1102': 'jack'} #深复制
import copy
info3 = copy.deepcopy(info)
info["stu1102"] = "jack2"
print(info)
print(info2)
{'stu1102': 'jack2', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 33}}
{'stu1102': 'JACK', 'stu1101': {'name': 'wangeq', 'age': 33}, 'stu1104': ['ZHANG', 32, 'abc']}
info["stu1101"]["age"] = 40
print(info)
print(info2)
{'stu1102': 'jack2', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 40}}
{'stu1102': 'JACK', 'stu1101': {'name': 'wangeq', 'age': 33}, 'stu1104': ['ZHANG', 32, 'abc']}
其它功能
#values
print(info.values())
dict_values([['ZHANG', 32, 'abc'], 'jack2', {'name': 'wangeq', 'age': 40}]) #keys
print(info.keys())
dict_keys(['stu1102', 'stu1104', 'stu1101']) #setdefault
#dict.setdefault(key, default=None)
print(info)
{'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 40}, 'stu1102': 'jack2'}
print(info.setdefault("stu1106","zhouwu")) #键不存在,添加并返回默认值
zhouwu
print(info)
{'stu1106': 'zhouwu', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 40}, 'stu1102': 'jack2'}
print(info.setdefault("stu1102")) #键存在,返回stu1102 values值
jack2
print(info)
{'stu1106': 'zhouwu', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 40}, 'stu1102': 'jack2'} #update
b = {"stu1102":"JACK"}
print(b)
{'stu1102': 'JACK'}
info.update(b)
print(info)
{'stu1106': 'zhouwu', 'stu1104': ['ZHANG', 32, 'abc'], 'stu1101': {'name': 'wangeq', 'age': 40}, 'stu1102': 'JACK'} #items
print(info.items())
dict_items([('stu1101', {'name': 'wangeq', 'age': 40}), ('stu1104', ['ZHANG', 32, 'abc']), ('stu1106', 'zhouwu'), ('stu1102', 'JACK')])
#循环dict
#one
for key in info:
print(key,info[key])
#two
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v) #通过列表生成默认dict
info4 =dict.fromkeys([1,2,3],'test')
print(info4)
{1: 'test', 2: 'test', 3: 'test'}
python基础(三)列表、数组、字典的更多相关文章
- python基础之列表、字典、元祖等 (二)
一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- Python基础 之列表、字典、元组、集合
基础数据类型汇总 一.列表(list) 例如:删除索引为奇数的元素 lis=[11,22,33,44,55] #第一种: for i in range(len(lis)): if i%2==1: de ...
- Python学习三|列表、字典、元组、集合的特点以及类的一些定义
此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- Python 基础 三 反射
Python 基础 三 反射 今天我们先介绍一下反射这个概念,啥是反射?反射就是自己检测自己.在我们Python的面向对象中的反射是啥意思呢?就是通过字符串的形式操作对象相关的属性.python中的一 ...
- python基础数据类型--列表(list)
python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后 append ...
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
随机推荐
- maven发布本地包,eclipse-maven集成tomcat7热部署项目
国内maven 库 :http://maven.aliyun.com/nexus/content/groups/public/ maven安装不在中央仓库的jar包: mvn install:inst ...
- Junit单元测试对线程测试没反应
今天还想简单写写线程的东西,结果刚刚写完我就懵逼了. 结果啥都没有输出,而用主方法运行就可以输出.没办法,只有度年来寻求自己的答案了 结果各方面的了解,我算是有个了解了. 首先来看看代码 packag ...
- 在线预览pdf、xlsx、docx、ppt等文档
使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...
- 移动端ios电话号码
<meta name="format-detection" content="telephone=no"> <meta http-equiv= ...
- zTree 勾选checkbox
zTree 勾选checkbox var setting = { check: { enable: true// chkboxType : { "Y&quo ...
- Asp.Net MVC2.0 Url 路由入门---实例篇
本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...
- Ray Tracing
Ray Tracing 题目链接:http://codeforces.com/problemset/problem/724/C 拓展欧几里得 //为什么这次C题这么难啊=.= 可以观察到,光线在矩形中 ...
- ios根据文本自适应 然后 搭建类似如下效果
UIView * headView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.tbSecond.size.width, 0)]; hea ...
- 《JS权威指南学习总结--6.2属性的查询和设置》
内容要点: 一.数组元素通过字符串索引而不是数字索引,这种数组就是我们所说的关联数组,也称散列.映射或字典. 二.继承 1.JS对象具有"自有属性",也有一些属性是从原型对象继承而 ...
- hdu_4787_GRE Words Revenge(在线AC自动机)
题目链接:hdu_4787_GRE Words Revenge 题意: 总共有n个操作,2种操作.每行读入一个字符串. 1.如果字符串以+开头,此为单词(即模式串,不考虑重复) 2.如果字符串以?开头 ...