介绍

list和dict,顾名思义,就是列表和字典,这是python中非常基础的数据结构,也是非常重要且用途最广的数据结构

列表list就是一串糖葫芦

list是python的一种内置数据结构,想象成一串糖葫芦。python提前设定好了list的特点和一些固定操作(或方法或函数),计算机知道该怎么进行具体操作。list用中括号表示,里面的值用英文的逗号分开。

特点与操作

1. list有这么几个简单的特点:

(1) 长度不固定,就像糖葫芦可以串8个,串10个,当然也有奸商可能就串6个,甚至4个

(2) 类型不固定,糖葫芦可以串山楂,黑枣,橘子等等,list里面也可以放字符串,数字,列表等等

(3) 可以修改,就好像制作糖葫芦,你本来要串个山楂,结果串了个橘子,可以把对应的那个错的修改了就好啦。

2. list可以做这样的几个操作:

(1) append : 追加元素,相当于给糖葫芦一个个的串山楂

(2) +,extend: 多个列表相加, 相当于把两串糖葫芦连在一起

(3) insert: 向指定位置插入一个值,假如要给糖葫芦的第二个位置串一个黑枣

(4) remove, pop: 移除某一个元素,糖葫芦中间某个坏了,给剔除

(5) a in list_b: 检查某个元素是否存在,检查一个纯山楂的糖葫芦里是不是有黑枣

(6) sort : 排序,这个糖葫芦比较难办,假装要一串山楂从小到大排列的糖葫芦吧!

(7) [:]   : 切片操作,假如你吃糖葫芦时候,就喜欢吃第2个到第5个,该怎么啃?

代码演示:

help(list)
dir(list)

hulu1 = ['zha','zha','zha','zha']
hulu2 = [1,2,3,4,5,6,7]
hulu3 = []
hulu3 = hulu1+hulu2
(1)hulu3
['zha', 'zha', 'zha', 'zha', 1, 2, 3, 4, 5, 6, 7]
(2)hulu3.extend(hulu1)
hulu3
['zha', 'zha', 'zha', 'zha', 1, 2, 3, 4, 5, 6, 7, 'zha', 'zha', 'zha', 'zha']
(3)hulu1.append('zao')
hulu1.append('zao')
hulu1.append('zao')
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao', 'zao']
(4)len(hulu1)
7
len(hulu3)
15
(5)hulu1.insert(3, 'xxx')
hulu1
['zha', 'zha', 'zha', 'xxx', 'zha', 'zao', 'zao', 'zao']
(6)hulu1.remove(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
hulu1.remove('xxx')
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao', 'zao']
(7)hulu1.pop()
'zao'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao']
hulu1.pop()
'zao'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
(8)hulu1.insert(2, 'yyy')
hulu1
['zha', 'zha', 'yyy', 'zha', 'zha', 'zao']
hulu1.pop(2)
'yyy'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
y in hulu1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
'yyy' in hulu1
False
'zha' in hulu1
True
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
hulu1.sort()
hulu1
['zao', 'zha', 'zha', 'zha', 'zha']
s=[5,2,6,8,34,7,8]
s.sort()
s
[2, 5, 6, 7, 8, 8, 34]
s=[5,2,6,8,34,7,8,'a1','b5', 'a6','b2','a3']
s.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
s
[2, 5, 6, 7, 8, 8, 34, 'a1', 'b5', 'a6', 'b2', 'a3']
s=[5,2,6,8,34,7,8,'am','bw', 'af','bs','an']
s.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
s=['am','bw', 'af','bs','an']
s.sort()
s
['af', 'am', 'an', 'bs', 'bw']
s[1]
'am'
s[3]
'bs'
s[3:]
['bs', 'bw']
s[:2]
['af', 'am']
s[:]
['af', 'am', 'an', 'bs', 'bw']
s[::2]
['af', 'an', 'bw']
s[::-1]
['bw', 'bs', 'an', 'am', 'af']
s='asdfghjk'
s[::-1]
'kjhgfdsa'
s[:5]
'asdfg'
s[3:]
'fghjk'
s[::3]
'afj'

字典

python的dict这种数据结构可以直接理解为字典,给你一个词,这个词在python的字典里叫做key,键,用这个词可以找到它相关的意思或者说具体内容,这个内容在python的字典里,叫做key的值或者value,或简单叫作v。

dict用大括号表示,里面用英文的逗号分隔多个组,用冒号隔开每一组的key和v

特点与操作

1. dict的特点:

(1)key是不可变的,很简单去理解,查单词的时候,如果查到一半这个词自己变了,那肯定查的就是别的词儿了。这个key的类型可以是int,float,或是string。你可以理解用目录的页面编号去查找某一页,或者用一个单词去查她的意思。

(2)字典默认是无序的。因为字典只是一堆kv的集合,相当于一个大书包,各种书随便丢在里面了。排序的问题以后再说。

2. dict的常用操作:

help(dict) # 查看帮助,浏览全局
dir(dict) # 查看有哪些方法

(1){'k':'v'}, dict(zip(list_k, list_v)): 创建方法(使用kv或者zip)

d={'k':2,'x':"ttt"} # 用大括号建立字典
d
>>> {'x': 'ttt', 'k': 2}
 list_k=[1,2,'n']
list_v=['hello','python','hhhh']
d=dict(zip(list_k, list_v)) # 用zip和kv的列表建立字典
 d
>>>{1: 'hello', 2: 'python', 'n': 'hhhh'}

(2)d['k'],d.get('k'): 获取元素(直接中括号里用k或get方法)

d['1'] # 用不存在的k会报错
>>>Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: '1'
 d[1]
>>>'hello'
d['n'] = 'happy' # 更新key的值
 d
>>>{1: 'hello', 2: 'python', 'n': 'happy'} 
 d.get('n') # 用get获取
>>>'nb'
>>> d.get('m') # 没有k的时候为空
>>> d.get('m', 'yyy') # 取不到时候设置默认的值
'yyy'

(3)'k' in d: 检测k是否存在

'm' in d   # 判断是否存在k
>>> False
 'n' in d
>>> True

(4)d.keys(): 获取所有的k

d.keys()
>>>dict_keys([1, 2, 'k'])

(5)d.values(): 获取所有的值

d.values()
>>>dict_values(['hello', 'python', 'tttt'])

(6)del d['k']: 删除k

 del d['n'] # 删除k
 d
>>>{1: 'hello', 2: 'python'}
 d['k']='tttt' # 直接添加k和v到字典,k之前可不存在
 d
>>>{1: 'hello', 2: 'python', 'k': 'tttt'}

(7)d1.update(d2): 更新值,同k被覆盖

dict[1]='aaaaaaa'

dict[2]='bbbbbbb'

d1  d2
>>>>>{1: 'aaaaaaa', 2: 'bbbbbbbb'}
>>> d2["k2"]="yyyy"
>>> d2
{2: 'sdfsdf', 4: 'sdfsdf', 'k2': 'yyyy'}
>>> d
{1: 'hello', 2: 'python', 'k': 'tttt'}
d.update(d2) # 更新,相同的k会被覆盖

Python基础知识(二)基本数据结构list列表和dict字典相关推荐

  1. 【Python基础学习】基本数据结构:列表、元组、栈、字典、集合与队列

    [Python基础学习]基本数据结构:列表.元组.栈.字典.集合与队列 Python的基本数据结构中,包含了列表.元组等一系列数组式数据结构,但各个结构各有不同.因此单独列出来,分析相同与不同 列表( ...

  2. python基础知识二

    1.python中的三个读read(),readline()和readlines() 我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字 ...

  3. Python基础知识:3、操作列表

    遍历.循环. #for循环 magicians=["alice","david","carolina"] for magician in m ...

  4. Python基础知识、基本概念、下载python和pycharm、列表、元组、字典等等

    先看后赞,养成习惯.点赞收藏,人生辉煌! 目录 1.Python基础知识 1.1 基本概念 1.2 下载python和pycharm 1.3 格式化输出 1.4 键盘输入 1.5 运算符和表达式 2. ...

  5. Python基础知识入门(二)

    Python基础知识入门(一) Python基础知识入门(三) Python基础知识入门(四) Python基础知识入门(五) 一.数字类型 Python 数字数据类型用于存储数值.数据类型是不允许改 ...

  6. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  7. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  8. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  9. python环境下数据操作_数据分析环境搭建和Python基础知识

    搭建数据分析环境主要包括使用anaconda管理包和环境:使用Jupyter notebook将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.Python基础知识包括关键点(数据 ...

最新文章

  1. 机器学习中四种调参方法总结
  2. php隐藏文件链接,php隐藏文件实际下载地址的方法
  3. Tabcontrol动态添加TabPage(获取或设置当前选项卡及其属性)
  4. 第1步 新建spring+springmvc+mybatis项目 每步都有 讲解 巨详细
  5. php 代码格式化命令,go fmt命令——格式化代码文件
  6. 全网首发:制作LINUX安装软件包,要处理哪些系统目录和文件(3)
  7. 联想微型计算机拆装图解,笔记本电脑的拆卸图解
  8. AVI、WMV、FLV、MKV、WebM、MOV格式视频怎么打开?它们之间有什么区别?答案在这里
  9. 算法基础知识总结(数学知识)
  10. Pubg九月十六日服务器维护,绝地求生9月16日更新维护到几点?绝地求生9月16日更新时间公告...
  11. eTS UI开发学习
  12. 战舰少女r服务器维修,战舰少女r修理时间怎么计算?舰船受损维修时间公式分析[多图]...
  13. Debian 下的五笔输入法 Rime
  14. 如何在 Linux 中更新 Flatpak 软件包
  15. PHP网格显示图片,不显示网格线怎么设置?
  16. 最新在线客服系统源码软件代码+自动回复+管理后台
  17. 2010年显卡行业大事
  18. BRENDAN MCCAFFREY:自行车大师
  19. IAST 在去哪儿 Q-SDL 体系中的应用
  20. 轻松复制当前路径到剪贴板

热门文章

  1. 多线程 环形缓冲区_使用环形缓冲区有效登录多线程应用程序
  2. android 三种常用的加密方式
  3. kline 专业金融K线绘制库
  4. 营救(广度优先搜索)题解
  5. Chernoff Bound
  6. c语言微信小程序编程,微信小程序实现类似微信点击语音播放效果
  7. linux 挂载4t移动硬盘,Linux挂载移动硬盘
  8. Java求1000以内的水仙花数
  9. Ubuntu下使用NI-VISA控制USB接口仪器(示波器)
  10. Access2007实用教程pdf