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 ...
随机推荐
- Eclipse中安装Jdk和配置Python
要借助Eclipse辅助工作,之前安装配置都是同事帮忙弄的,今天有空来整理一下安装配置步骤 一.安装JDK1.下载JDK,安装JDK,安装完毕,配置JDK环境变量 1)我的电脑右键-属性-高级-点击 ...
- reinterpret_cast应用
reinterpret_cast 的一个实际用途是在哈希函数中,即,通过让两个不同的值几乎不以相同的索引结尾的方式将值映射到索引. #include <iostream> using na ...
- QDataStream对QVector的序列化
最近发现QDataStream这个好东东,序列化发送数据很方便,与大家分享一下. 客户端: line.h #ifndef LINE_H #define LINE_H #include <QStr ...
- mysql最大连接数问题
进入mysql系统就, 查询最大连接数:show variables like 'max_connections'; 修改最大连接数:set global max_connections=1000;
- kali rolling 安装typecho
#1 apt-get install nginx php7.0 php7.0-mysql php7.0-gd php7.0-cgi php7.0-cli php7.0-curl php7.0-fpm ...
- Scope Directive
---------------------------Scope-------------------------------- https://docs.angularjs.org/guide/sc ...
- lt>&eq
lt:less than,小于 gt:greater than,大于 eq:equal,等于 le:less equal,小于等于 ge:greater than,大于等于
- 【LeetCode】462. Minimum Moves to Equal Array Elements II
Given a non-empty integer array, find the minimum number of moves required to make all array element ...
- c#笔记之启动新线程
可已通过下面方法来启动一个新线程并执行相应的方法 new Thread(new ThreadStart(new Action(() => { ...
- Java 泛型 通配符类型
Java 泛型 通配符类型 @author ixenos 摘要:限定通配符类型.无限定通配符类型.与普通泛型区别.通配符捕获 通配符类型 通配符的子类型限定(?都是儿孙) <? extends ...