python学习4—数据结构之列表、元组与字典

列表(list)深灰魔法

1. 连续索引

li = [1,1,[1,["asdsa",4]]]
li[2][1][1][0]

2. 其他数据结构转换为列表

  可以进行for循环的数据结构可以转换为List,数字不能循环则无法转换为列表

li = "cbdualbvrhyacv"
new_li = list(li)

3. 列表转换为字符串,

  若列表里面既有数字,又有字符串,则需自己写for循环

li = [123,"alex"]

s = ""
for i in li:
s += str(i) print(s)

若列表里只有字符串,则可以使用joint(),与空字符串joint

li = [123,"alex"]

new_li = "".joint(li)

列表(list)灰魔法

1. 在列表最后追加一个整体元素append(p_object)

li = [11,22,33,44]

li.append(5)
li.append("alex")
li.append([122,345]) print(li)

2. 清空列表clear()

li.clear()

3. 浅拷贝copy()

v = li.copy()

4. 计算某元素在列表中出现的次数count(value)

v = li.count(22)

5. 将某一可迭代对象里面的元素循环添加到列表里extend(iterable)

v = li.extend([123,"cbeauilbv"])

v = li.extend("cbaulyrv")

6. 寻找列表中某元素的位置index(object)

v = li.index(11)

7. 指定索引位置插值insert(index,p_object)

li.insert(0,99)

8. pop(index)删除某个值并获取被删除的值,默认删除最后一个值

v = li.pop()

v = li.pop(0)

9. 删除列表中的指定元素remove(object)

li.remove(22)

10. 翻转列表各元素reverse()

li.reverse()

11. 排序sort()

li.sort()    #从小到大排序
li.sort(reverse = True) #从大到小排序

元组(tuple)深灰魔法

1. 元组定义

tu = (111,"alex",(11,22),[(33,44)],True,256,11,22,)

最好再定义元组的时候在最后一个元素末尾加个,以与函数赋值相区别

2. 索引、切片

tu[1]
tu[0:3]

3. 元组一级元素不可被修改,不能增加或删除

  但是,元组的某个可修改的二级以下元素可以被修改!!!!!

tu[3][0] = 567

4. 元组可以进行for循环

for i in tu:
print(i)

注:由循环性可知,列表,元组,字符串之间可以相互转换

元组(tuple)灰魔法

1. 计算某元素出现的个数count(value)

v = tu.count(11)

2. 寻找某个元素的位置index(value)

v = tu.index(22)

字典(dict)深灰魔法

1. 定义字典(dict)

info = {
"k1" : "v1",
"k2" : "v2",
: [11,22],
"k4" : (11,22),
"k5" : { "kk1" : "vv1",
"kk2" : "vv2",},
}

列表、字典不能作为字典的键

布尔值、数字、字符串、元组可以作为字典的键

布尔值:True = 1, False = 0

若两个key相同,则只保留最后一个

2. 字典是无序的,不可切片,通过key来索引

v = info['k1']

v = info[5]

3. 删除键值对del

del info['k1']

4. 字典可以进行for循环,默认循环key

for item in info:
print(item) for item in info.keys():  #循环key
print(item) for item in info.values():  #循环value
print(item) for k,v in info.items():  #键值对二者均循环
print(k,v)

5. in操作,默认循环键

v = 'k1' in info    #True

字典(dict)灰魔法

1. clear()

2. copy()

3. 根据key取值,若不存在,可指定默认值get()

v = info.get('k1',111111)  #存在,忽略111111

v = info.get('k111',default)  #不存在,采用default值

4. 取键keys()

5. 取值values()

6. 取键值对items()

7. 删除pop()

v = info.pop('k1')

v = info.pop('k111',90)    #若不存在,可指定返回值为90

8. 随机删除一个键值对popitem()

k,v = info.popitem()  #返回被删除的键值对

9. 设置不存在的键值对,若已存在则返回当前值setdefault()

v = info.setdefault('k111','')

10. 更新update(),有两种写法

info.update('k1':11111,'k5':123)

info.update(k1=123, k2=456, k5=789)

**kwargs,表示上述两种方式表达均可以

**['k1':123,'k2':456]

字典(dict)黑魔法(静态方法)

1. 根据序列创建字典的键并可指定值dict.fromkeys()

v = dict.fromkeys(['k1',123,'k4'],456)

python学习4—数据结构之列表、元组与字典的更多相关文章

  1. Python学习小技巧之列表项的排序

    Python学习小技巧之列表项的排序 本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 典型代码1:     data_list = [6, 9, 1, ...

  2. Python—列表元组和字典

    Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...

  3. Python学习(四)—— 列表和元组的类中方法

    列表 list:用中括号括起来,用“,”分割每个元素,列表中的元素可以是 数字.字符串.列表.布尔值......所有东西,可以说就是一个“集合” li = [1,3,5,'alex','age',[' ...

  4. 从0开始的Python学习012数据结构&对象与类

    简介 数据结构是处理数据的结构,或者说,他们是用来存储一组相关数据的. 在Python中三种内建的数据结构--列表.元组和字典.学会了使用它们会使编程变得的简单. 列表 list是处理一组有序的数据结 ...

  5. python学习之数据结构

    python的数据很丰富,所以对于数据分析来讲, python是一种最合适的选择 下面讲述一下常见的数据结构,包括栈,队列,元组,字典,集合等,以及对这些数据结构进行操作 #堆栈,后进先出 a=[10 ...

  6. 15、python学习手册之:列表和字典

    1.列表属于可变序列,支持在原处的修改 2.在标准python解锁器内部,列表就是C数组而不是链接结构 3.内置函数map对序列中的各项应用一个函数并把结果收集到一个新的列表中 eg:list(map ...

  7. python学习笔记(一)、列表和元祖

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.通用的序列操作 有几种操作适用于所有序列,包括索引.切片.相加.相乘和成员资格检查.另外,Pyt ...

  8. 4.Python的不堪一击到初学乍练(列表,元组)

    Python(列表,元组) 一.列表 列表初识 列表是python的基础数据类型之一,其他编程语言也有类似的数据类型. 比如JS中的数组, java中的数组等等,它是以[ ]括起来, 每个元素用&qu ...

  9. python学习之模块(pip),列表生成式,模块操作mysql,excel

    python基础 生成式 列表生成式 格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: res1 = [] for i in range(1,5): res1.append(i) ...

随机推荐

  1. [NOIP模拟测试10]辣鸡(ljh) 题解

    首先计算块内贡献,很显然是$(x_2-x_1)*(y_2-y_1)*2$. 然后考虑矩形之间的贡献,sort一遍分类讨论$n^2$暴力即可. 注意考虑边界情况是否能多两个,以及角对角的情况. 另外,排 ...

  2. [7.18NOIP模拟测试5]星际旅行 题解

    题面(加密) 考场上靠打表yy出的规律进而想到的正解233333 可以把一条双向边拆成两条单向边,这样的话每个点度数都为偶数,符合欧拉图的定义. 那么题目可以转化为:去掉两条边,使图中存在一条欧拉路. ...

  3. [经典]Python 一篇学会多线程

    对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用简单的例子,让你对多线程有个初步的认识. 单线程 在好些年前的MS-DOS时代,操作系统处理问题都是单任 ...

  4. flink收藏博客

    1.https://blog.csdn.net/liguohuabigdata/article/category/7279020 2.http://wuchong.me 3.https://www.j ...

  5. Git 学习第二天(三)

    删除文件: 先新建一个test文件到webgit版本库中,然后 git add            git commit 当然,我们可以在文件夹中删除文件,git 也提供了命令 rm file 此时 ...

  6. 剑指offer——71扑克牌中的顺子

    题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决 ...

  7. mybatis执行test07测试类却显示test05测试类调用的sql语句出错

    1.测试类 @Test public void test07() { IStudentDao studentDao = new IStudentDaoImpl(); Student student = ...

  8. 高级UI晋升之布局ViewGroup(四)

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从LinearLayout.RelativeLayout.FrameLa ...

  9. [已解决]报错Could not install packages due to an EnvironmentError

    安装OpenCV过程中出现错误 代码: pip-conda install -i https://pypi.douban.com/simple/ opencv-python 报错内容如下: Could ...

  10. python中的模块以及包导入

    python中的导入关键字:import 以及from  import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函 ...