Python之路(四)--->list、元组、字典
好久没有更新了,感觉自己写的东西并没有太多人看,可能是因为写的不好,也可能是太基础了。学习是一个漫长的过程,结果结果固然重要,但是更重要的是在学习的过程中所学到方法,这些方法在以后的生活还是工作中都能给予你很大的帮助。同时,学习也是一个试错的过程,我们不谈天资,没有一个人生下来就知道很多知识,后期的努力是非常重要的。
接下来我要记录下最近学的list、元组、字典相关的知识点,望各位大神给予指导!
------------------------------------------------------------(分隔线)--------------------------------------------------------------
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,以此类推。在Python中有6个序列的内置类型,但最常见的是list和元组,序列都快进行索引、切片、加、乘、检查成员等操作。
一、列表 --> list
创建一个列表即list,只要把逗号分隔的不同的数据项用方括号括起来即可。list支持删除、添加、修改list中的元素。例:
li = ["a","b",1,2,3,"tom","root"]
列表中的元素可以是数字、字符、字符串。同时,列表还支持列表嵌套。
1. 索引
li = ["alex", 1, 2, 'K']
print(li[2]) #执行结果:2
2.切片
li = ["alex", 1, 2, 'K']
print(li[0:2]) #执行结果:['alex', 1]
3. append() --> 在原列表的最后追加新元素,例:
li = ["alex", 1, 2, 'K']
li.append("asajkakg")
print(li) #执行结果:['alex', 1, 2, 'K', 'asajkakg']
4. copy() --> 浅拷贝,例:
li = ["alex", 1, 2, 'K']
v = li.copy()
print(v) #执行结果:['alex', 1, 2, 'K']
5. clear() --> 清空列表中的所有元素,例:
li = ["alex", 1, 2, 'K']
li.clear()
print(li) #执行结果:[]
6. count() --> 计算元素出现的次数,例:
li = ["alex", 1, 2, 'K',2]
v = li.count(2)
print(v) #执行结果:2
7. extend --> 拓展列表中的元素,这里和append()有一定的区别,append()是将要拓展的所有元素当做一个大的元素拓展进去,而extend()则是将每个元素拓展进去,例:
li = ["alex", 1, 2, 'K',2]
li.append([9988,"kkk"])
print(li) #执行结果:['alex', 1, 2, 'K', 2, [9988, 'kkk']] li = ["alex", 1, 2, 'K',2]
li.extend([9988,"kkk"])
print(li) #执行结果:['alex', 1, 2, 'K', 2, 9988, 'kkk']
8. index() --> 获取值在列表中的位置,当列表中有多个相同元素时,返回第一个值的位置,例:
li = ["alex", 1, 2, 'K',2]
v = li.index(2)
print(v) #执行结果:2
9. insert() --> 在指定位置插入指定元素,例:
li = ["alex", 1, 2, 'K',2]
li.insert(3,"tom")
print(li) #执行结果:['alex', 1, 2, 'tom', 'K', 2]
10. pop() --> 删除指定位置的元素,若不指定位置,默认删除最后一个元素,例:
#指定位置时
li = ["alex", 1, 2, 'K',2]
li.pop(3)
print(li) #执行结果:['alex', 1, 2, 2] #不指定位置时
li = ["alex", 1, 2, 'K',2]
li.pop()
print(li) #执行结果:['alex', 1, 2, 'K']
11. remove() --> 删除列表中指定的值,优先删除第一个扫描到的值,例:
li = ["alex", 1, 2, 'K',2]
li.remove(2)
print(li) #执行结果:['alex', 1, 'K', 2]
12. reverse() --> 将列表中的元素进行反转,例:
li = ["alex", 1, 2, 'K',2]
li.reverse()
print(li) #执行结果:[2, 'K', 2, 1, 'alex']
13. sort() --> 将列表中的元素按顺序排列,例:
li = [1, 2, 5, 2, 10]
li.sort()
print(li) #执行结果:[1, 2, 2, 5, 10]
介绍另外修改元素、删除元素以及列表字符串相互转换的方法。
删除,可以用del 加上列表的索引,例:
li = [1, 2, 5, 2, 10]
del li[0]
print(li) #执行结果:[2, 5, 2, 10]
修改,例:
li = [1, 2, 5, 2, 10]
li[0] = "hjak"
print(li) #执行结果:['hjak', 2, 5, 2, 10]
列表转换为字符串,例:
li = [1, 2, 5, 2, 10, "asd", "jim"]
s = ""
for i in li:
s= s + str(i)
print(s) #执行结果:125210asdjim
字符串转换为列表,例:
s = "asdadadas"
li = list(s)
print(li) #执行结果:['a', 's', 'd', 'a', 'd', 'a', 'd', 'a', 's']
------------------------------------------------------------(分隔线)--------------------------------------------------------------
二、元组 --> tuple
与列表类似,但元组中的元素创建后不可修改、也不能增加或者被删除。注意:一般在写元组时,最后建议加上逗号。这样做的目的是为了区分开函数的参数和元组。例:
tu = (111, "tom",33, )
元组同样支持索引、切片以及列表转换为元组例:
tu = (111, "tom", 33, )
v1 = tu[0]
v2 = tu[0:3]
print(v1,v2) #执行结果:111 (111, 'tom', 33)
------------------------------------------------------------(分隔线)--------------------------------------------------------------
三、字典 --> dict
字典可以存储任意类型对象,字典的每个键值对用冒号分割,每对之间用逗号隔开,整个字典都包含在{}中,例:
d = {
"k1": 1,
"k2": 2
}
值得注意的是:键必须是唯一的,但是值则不需要;值可以是任何数据类型,但键必须是不变得。
1.fromkeys() --> 根据序列,创建字典,并指定统一的值,例:
v = dict.fromkeys(["k1", 22, ""],520)
print(v) #执行结果:{'999': 520, 22: 520, 'k1': 520}
2.pop()和popitem() --> 删除键值并获取其值,例:
dic = {
"k1":"v1",
"k2":"jj"
} v1 = dic.pop("k1", 90)
print(dic, v1, ) #执行结果:{'k2': 'jj'} v1 v2 = dic.popitem()
print(dic, v2, ) #执行结果:{'k1': 'v1'} ('k2', 'jj')
3.设置键值,若键值已经存在,则不设置并获取当前键所对应的值;若未设置,则设置键值并获取当前键所对应的值,例:
dic = {
"k1": 'v1',
"k2": 'v2'
} v1 = dic.setdefault('k1', '')
print(dic, v1) #执行结果:{'k2': 'v2', 'k1': 'v1'} v1 v2 = dic.setdefault('k12',"asd")
print(dic, v2) #执行结果:{'k2': 'v2', 'k12': 'asd', 'k1': 'v1'} asd
4. update() --> 更新字典键值,例:
dic = {
"k1": 'v1',
"k2": 'v2'
} dic.update({'k1': '','k3': 123})
print(dic) #执行结果:{'k3': 123, 'k2': 'v2', 'k1': '111111'}
字典是无序的,同样可以进行索引,切片等操作。
------------------------------------------------------------(分隔线)--------------------------------------------------------------
正所谓:“不犯错就永远不会进步。”
Python之路(四)--->list、元组、字典的更多相关文章
- 翻译《Writing Idiomatic Python》(四):字典、集合、元组
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- Python之路 day2 字符串/元组/列表/字典互转
#-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ' ...
- Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作
一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name = "Jonathan&q ...
- python之路四
内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...
- python基础之02列表/元组/字典/set集合
python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- Python入门基础学习(列表/元组/字典/集合)
Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...
- python之路-列表、元组、range
一 . 列表 # 列表的定义 列表就是能装对象的对象 在python中用[ ]来描述列表,内部元素用逗号隔开,对数据类型没有要求 索引和切片 lst = ["天龙八部", &quo ...
- python之路---04 列表 元组
十七 .列表 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 1.列表存在索引和切片. 和字符串是一样的. 2.增删改查操作 1).增加 1. .append(&quo ...
- python的对象类型-----列表&元组&字典
列表: #定义列表 l=[1,'a',[3,4]] #l=list([1,'a',[3,4]]) #取值 print(l[0]) print(l[2][0]) l=[1,2,[['a','b'],'c ...
随机推荐
- JAXB实现java对象与xml之间转换
JAXB简介: 1.JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标 ...
- 在python命令行执行sudo命令
def test(): sudoPassword = 'test' command = '/opt/lampp/lampp stopmysql' str = os.system('echo %s|su ...
- Android App 注射&&Drozer Use
x01 准备工作 测试环境: 1) 手机root权限 2) Adb.exe 3) 手机usb连接开启debug模式(在设置>关于手机>连续点击多次版本号,即可开启开发者模式) 4) Win ...
- js布局库
1.viz.js The solution was that someone cross compiled Graphviz to Javascript using llvm + emscripten ...
- 使用python 操作liunx的svn,方案二
在对liunx操作svn的方式,做了改动,使用python的,subprocess进行操作 在第一种方案中,我使用了先拉到本地,然后再创建,在进行上传,实际在svn中可以直接创建文件,并进行文件复制, ...
- Ping服务
什么是Ping服务 ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新. Ping服务使用方法 你可以采取手动通知和自动通知两种方式使用p ...
- [Python 多线程] Timer定时器/延迟执行、Event事件 (七)
Timer继承子Thread类,是Thread的子类,也是线程类,具有线程的能力和特征.这个类用来定义多久执行一个函数. 它的实例是能够延迟执行目标函数的线程,在真正执行目标函数之前,都可以cance ...
- [转]使用QT开发GoogleMap瓦片显示和下载工具
第一节 之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背 ...
- MyBatis保存完整日期的解决方法
在用mybatis时,对mysql数据库是datatime字段添加值是,发现添加成功后查看数据库字段值是,只有年月日有值,时分秒则为0来表示的,更改为java.sql.date,time等也不行,如果 ...
- 结合cocos2d-x开发配置sublime text
开发cocos2d-x前端的非核心开发人员对于编辑器的选择,多数的选择有两个,一个是传统的ultraedit,另外的就是现在很流行的sublime text.以前我是比较喜欢用ultraedit的,但 ...