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 ...
随机推荐
- ios 开发证书 appids 描述文件关系
当你准备进行真机测试或者发布应用到App Store上去的时候, 免不了要申请相应的证书.(Development--测试证书. Distribution--发布证书) 进入证书管理相应网站https ...
- SweetTips: 快意灵动的Android提示库!
此文章是我在简书的文章,自行搬到博客园.简书地址:SweetTips: 快意灵动的Android提示库! 源码及所在DEMO已上传至GitHub:SweetTips,欢迎大家提Bug,喜欢的话记得St ...
- .net 可枚举类型的构建方法
数组可以使用foreach遍历数组,其实只要实现GetEnumertor方法的类型都可以使用foreach结构遍历数组. 首先看下代码: //笔类 public class Pencil { publ ...
- Maven项目下WEB-INFO目录下没有编译的classes文件
建立mavan项目之后,在项目目录中没有发现编译的classes文件夹 解决办法: 因为maven是默认将编译后的classes文件存入项目下的target文件夹中,所以我们需要修改编译后存放的路径, ...
- chrome手动添加拓展
https://www.crx4chrome.com/crx/978/ Free Download Postman REST Client CRX 0.8.4.19 for ------------- ...
- SNS
SNS,专指社交网络服务.也指社交现有已成熟普及的信息载体,如短信SMS服务.SNS的另一种常用解释:全称Social Network Site,即“社交网站”或“社交网”.SNS也指Social N ...
- ASP.NET的三层架构(DAL,BLL,UI)
ASP.NET的三层架构(DAL,BLL,UI) BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Laye ...
- hadoop报错 Message missing required fields: callId, status
今天群里有人问hadoop的问题,说百度上怎么都查不到,还好hadoop之前玩过一阵,也遇上过这个问题 hadoop-2.2.0 hbase 0.95-hadoop2的 ,hdfs正常 ,启动 hb ...
- 转:详解JMeter正则表达式(2)
例如, 引用名称:MYREF. 正则表达式:name="(.+?)" value="(.+?)". 模板:$1$$2$. 不要用/ /封装正则表达式. 如下变量 ...
- fragment类onresume里面刷新操作处理
今天项目中涉及fragment中嵌套多个fragment,但是要根据tag去展示对应的fragment,而不是默认展示的第一个fragment,如果使用activity很容易想到onpause(),o ...