列表与元组

列表是最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

定义列表


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基础(三)列表、数组、字典的更多相关文章

  1. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  2. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  3. Python基础 之列表、字典、元组、集合

    基础数据类型汇总 一.列表(list) 例如:删除索引为奇数的元素 lis=[11,22,33,44,55] #第一种: for i in range(len(lis)): if i%2==1: de ...

  4. Python学习三|列表、字典、元组、集合的特点以及类的一些定义

    此表借鉴于他人 定义 使用方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner', ...

  5. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  6. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  7. Python 基础 三 反射

    Python 基础 三 反射 今天我们先介绍一下反射这个概念,啥是反射?反射就是自己检测自己.在我们Python的面向对象中的反射是啥意思呢?就是通过字符串的形式操作对象相关的属性.python中的一 ...

  8. python基础数据类型--列表(list)

    python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后   append ...

  9. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  10. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

随机推荐

  1. GCD系列 之(一):基本概念和Dispatch Queue

    参考学习https://www.dreamingwish.com/article/grand-central-dispatch-basic-1.html系列文章,貌似也是翻译自他处的.觉得非常完整,就 ...

  2. C# 去除文件和文件夹的只读属性

    当我们使用 DirectoryInfo dir = Directory.CreateDirectory(pathName) 创建目录或者创建一个文件后,有时作为临时文件用完以后需要删除掉,使用File ...

  3. aop代理方式引起的spring注入bean(实现类)与获取bean(实现类)出错

    描述: 现象一 :A 为 接口,AImpl 为 A 的实现类,且 AImpl 受 aop 扫描,且 aop 无特殊配置   此时若:Spring 中 注入 AImpl 类型的bean,获取一样     ...

  4. Python----文件的IO操作

    一.文件操作 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头.这是默认模式. r+ 打开一个文件用于读写.文件 ...

  5. Hiver 操作 MySQL 导致锁表

    Hadoop 搬迁到新集群后,操作主库 MySQL 导致了锁表...sad 具体锁表时间点  : 2016-1-14 14:31  到   2016-1-14 14:36 之间 在 oradba 的 ...

  6. ionic 进入多级目录以后隐藏底部导航栏(tabs)(完美解决方案)

    公司开始使用ionic开发项目,在此记录下把遇到的问题,网上有大牛已经把解决方法整出来了,不过记录在自己这里方便查阅. 这篇记录在有tabs的项目里,进入子层级时,底部导航还一直存在,本人是要让他只在 ...

  7. Android编程获取手机的IMEI

    手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IMEI是由15位数字组成 ...

  8. Intent的几种Flag的不同

    冬天有点冷,不想写博客. 研究下Intent的几种Flag的不同: 1,FLAG_ACTIVITY_CLEAR_TOP:会清理掉目标activity栈上面所有的activity Intent inte ...

  9. SVD分解技术数学解释

    SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章 ...

  10. Spring Security(02)——关于登录

    目录 1.1     form-login元素介绍 1.1.1    使用自定义登录页面 1.1.2    指定登录后的页面 1.1.3    指定登录失败后的页面 1.2     http-basi ...