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 ...
随机推荐
- 使用SyncToy 同步两台机器上的文件夹
@echo off echo 准备启动同步... net use \\WIN-AJH8QENQQGK "123456" /user:Administrator Z:\SyncToy ...
- linux权限解读
1 只读权限,用r表示(read):可以读取文件或者列出目录的内容 2 可写权限,用w表示(write):可以删除文件或目录 3 可执行权限,用x表示(execute):可以执行可执行文件:可以进入目 ...
- 数据库及SQL优化
一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...
- HDU 5857 Median
因为原序列是排列好了的,那么只要看一下给出的两个区间相交的情况,然后分类讨论一下,O(1)输出. #pragma comment(linker, "/STACK:1024000000,102 ...
- URAL 1525 Path
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> us ...
- Inverse属性和cascade属性以及集合的多对多关系
Inverse属性 Inverse属性,是在维护关联关系的时候起作用的. 表示控制权是否转移.(在一的一方起作用) Inverse = true, 控制反转. Inverse = false 不反转 ...
- python 豆瓣图片的爬取
豆瓣图片的抓取:在python中实现生产者和消费者模型的实现,大家可以参考这篇文章 http://www.bkjia.com/Pythonjc/978391.html 个人认为是讲的比较易懂的,只要看 ...
- Var x;---定义变量
变量定义有多种格式 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- [妙味DOM]第四课:Event-事件详解2
知识点总结 事件捕获 obj.addEventListener('click',fn,true) 从外往里 obj.addEventListener('click',fn,false) 从里往外(冒泡 ...
- Apache httpd.conf配置详解
常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot ...