python中元组和列表转化_4.Python列表/元组/集合/字典

4.1 Python列表

• 列表用 [ ] 标识,是Python 最通用的复合数据类型。
• 列表用 [ ] 表示,列表具有可嵌套性

6243ee6ed47e4e71331655259315b8a7.png

4.1.1 Python列表截取

• 列表可以使用 [头下标:尾下标] 截取相应的子列表, 从左到右索引默认 0 开始,从右到左索引默认-1开始

7b8666443d06f7b4362f2505e844a133.png

4.1.2 Python列表截取与更新

• 列表操作(索引)

b2ea3dcfa59420881b56c4a2f5978416.png

4.1.3 Python更新列表

• 可以对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项。

f000b5b1ce847e92b6a69a7bd38956c3.png

4.1.4 Python删除列表元素

• 可以使用 del 语句来删除列表的的元素。

d511d901368b2e44aa9a5bf9a9cb8a92.png

4.1.5 Python列表操作符

d77ebfbb1226b5faacc10db7c41b5d7a.png

4.1.6 Python列表函数

07fc63c1434d27f648fdc98e1e3cc774.png

4.1.7 Python列表方法

043a710ebc13448119b0772eabf21931.png

4.1.8 Python列表切片

• 列表操作(切片slicing ,用索引截取某一段列表)

e8495de11a67ced952134e43534c66a1.png

3c4d24df3dea7f8a175efcc6cf2e82db.png

• 加号+是列表连接运算符,星号*是重复操作。例如:

66d6fe97b2f71e9a6761fef84bf28ca7.png

4.2 Python元组

• 元组是一种复合数据类型,类似于List(列表),元组用()”标识,内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

d3b8533e112bcf0261ac56f0c986060b.png

• Tuples(元组、序列)

33cc9c086cac548b85fb2005d2da9669.png

• Tuples操作

0a74faefd0acfd40553c77b5bb807114.png

4.2.1 Python元组截取

068eb3b9251036e006ee7ce2684af8b4.png

4.2.2 Python元组不允许二次赋值

• Python元组不允许更新,而列表是允许更新的。以下对元组的操作是无效的。

e2d8d7719943feeef5b421c80d8c5408.png

4.2.3 元组内置函数

d31ef5dd98ea2190d88f3c305c9c7200.png

4.3 Python集合(Set)

• 集合(set)是由一个或数个形态各异的大小整体组成的
• 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是{ },因为 { } 是用来创建一个空字典。
• 创建集合格式:

2ce6588e27f8771711880513bc54ca2e.png

• 或者

604df5b10d3357787328572778b500ef.png

de67e2fc8d29153c600f6dabdf9e1fc9.png

4.4 Python字典

• 字典是一种映射类型,字典用“{}”标识,它是一个无序的键(key) : 值(value)对的集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
• 字典是无序的对象集合。
• Dictionaries (Key-Value型Map)

2c8aab47b27611c277a9724f04ed7326.png

537565b15a4cdc99ecfcdfe00113f042.png

cbe376988cdee248f8ce48a1c2d95cd3.png

4.5 Python序列

• 序列(sequence),在Python中是一种具有相同特性的高级数据结构的统称
• 序列的通用操作:
① 通过索引来获取元素值
② 分片操作
③ 通过+合并元素
④ 通过*来复制元素
⑤ 支持成员运算符
⑥ 最大值、最小值和长度函数支持

904e672b96a31eb251950c0e59e8d313.png

4.6 Python数据类型转换

• 对数据内置的类型进行转换,只需要将数据类型作为函数名即可。

38f3f4f8d0908e27c5083463a34e9218.png

4.7 实验

In:

ls1 = ['a,',['b',['c','d']]]

In:

id(ls1)

out:

2078516844424

In:

ls1 = ['c','d']

In:

id(ls1)

out:

2078505627016

In:

ls1

out:

['a,', ['b', ['c', 'd']]]

In:

ls1[1][1][1]

out:

'd'

In:

a1 = 1

In:

id(a1)

out:

140727695483280

In:

a1 = 2

In:

id(a1)

out:

140727695483312

In:

ls1[0] = 'f'
ls1

out:

['f', ['b', ['c', 'd']]]

In:

id(ls1)

out:

2078516829704

In:

ls1.append(['h','g'])

In:

id(ls1)

out:

2078516844424

In:

ls1

out:

['f', ['b', ['c', 'd']], ['h', 'g']]

In:

del ls1[0]
ls1

out:

[['b', ['c', 'd']], ['h', 'g']]

In:

ls2 = ['q','e']
ls1 + ls2

out:

[['b', ['c', 'd']], ['h', 'g'], 'q', 'e']

In:

'q' in ls2

out:

True

In:

for x in ls2:print(x, end=' ')

out:

q e

In:

list((1,2))

out:

[1, 2]

In:

ls1.extend(ls2)
ls1

out:

[['b', ['c', 'd']], ['h', 'g'], 'q', 'e', 'q', 'e', 'q', 'e']

In:

ls1.insert(0,'z')

In:

ls1

out:

['z', ['b', ['c', 'd']], ['h', 'g'], 'q', 'e', 'q', 'e', 'q', 'e']

In:

ls1.pop()
ls1

out:

['z', ['b', ['c', 'd']], ['h', 'g'], 'q', 'e', 'q', 'e']

In:

ls1.remove('z')

In:

ls1

out:

[['b', ['c', 'd']], ['h', 'g'], 'q', 'e', 'q', 'e']

In:

ls1.reverse()

In:

ls1

out:

['e', 'q', 'e', 'q', ['h', 'g'], ['b', ['c', 'd']]]

In:

ls2.sort()

In:

ls2.sort(reverse=True)

In:

# ls1.sort() #嵌套类型不能用

In:

ls2

out:

['q', 'e']

In:

ls2.append('e')
ls2

out:

['q', 'e', 'e']

4.7.1 元组

In:

tu1  = ('a',1,['c','d'])

In:

tu1[0] = 'e'

out:

---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-38-75e55e2a1153> in <module>
----> 1 tu1[0] = 'e'
TypeError: 'tuple' object does not support item assignment

4.7.2 集合

  • 不能重复
  • set()
  • 无序
    In:
set([1,1,2])

out:

{1, 2}

In:

a = set([1,2,3])
b = set([4,2,3])

In:

a - b

out:

{1}

In:

a & b

out:

{2, 3}

In:

a | b

out:

{1, 2, 3, 4}

In:

a ^ b

out:

{1, 4}

4.7.3 字典

In:

dic1 = {'a':1,'b':2,'c':3}

In:

dic1['c']

out:

3

In:

#新增
dic1['d'] = 4
dic1

out:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

In:

s1 = None
# null, nan

In:

dic1['e']

out:

---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)<ipython-input-61-898ad45657b2> in <module>
----> 1 dic1['e']
KeyError: 'e'

In:

dic1.get('e',None)

In:

dic1.keys()

out:

dict_keys(['a', 'b', 'c', 'd'])

In:

for key in dic1.keys():print(dic1[key])

out:

1
2
3
4

In:

dic1.values()

out:

dict_values([1, 2, 3, 4])

In:

dic1.items()

out:

dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])

In:

for key,val in dic1.items():print(key + "|" +str(val))

out:

a|1
b|2
c|3
d|4

In:

lis1= ['a',1,['c','d']]

In:

a1,a2,a3 = lis1

In:

print(a1,a2,a3)

out:

a 1 ['c', 'd']

无序字典
In:

dic3 = {'a':1,'b':2}
dic4 = {'b':2,'a':1}
dic3 == dic4

out:

True

有序字典
In:

from collections import OrderedDict
dic11 = OrderedDict()
dic11['a'] = 1; dic11['b'] =2

In:

dic12 = OrderedDict()
dic12['b'] = 2; dic12['a'] =1
dic11 == dic12

out:

False

In:

print(dic11)

out:

OrderedDict([('a', 1), ('b', 2), ('c', 0), (1, 3)])

In:

dic11.

实验
在一个字典中保存了股票的代码和价格,找出股价大于100元的股票并创建一个新的字典。

说明:可以用字典的生成式语法来创建这个新字典。
In:

stocks = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'ACN': 166.89,'FB': 208.09,'SYMC': 21.29
}

In:

tar_dic = {}
for key,val in stocks.items():if val > 100:tar_dic[key] = val

In:

tar_dic

out:

{'AAPL': 191.88, 'GOOG': 1186.96, 'IBM': 149.24, 'ACN': 166.89, 'FB': 208.09}

In:

tar_dic2 = {key:val for key,val in stocks.items() if val > 100}

In:

tar_dic2

out:

{'AAPL': 191.88, 'GOOG': 1186.96, 'IBM': 149.24, 'ACN': 166.89, 'FB': 208.09}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaBean中的属性

让我们一步一步了解&#xff1a; 成员变量 public class Test { //成员变量 private String n; }属性 属性是 getXxx()方法去掉 get 后&#xff0c;将首字母小写的那个单词&#xff0c;此处属性名与成员变量名相同&#xff0c;都是“n” 注&#xff1a;属性名和成员变量名通…

重置线程中断状态_记住要重置线程上下文类加载器

重置线程中断状态我很难思考与Java 加载有关的东西&#xff0c;而不是与类加载器有关的东西。 在使用应用程序服务器或OSGi的情况下尤其如此&#xff0c;在这些应用程序服务器或OSGi中&#xff0c;经常使用多个类加载器&#xff0c;并且透明地使用类加载器的能力降低。 我同意O…

【WebRTC---源码篇】(十一)WebRTC编码与发送H264持续更新中

H264在WebRTC中是如何编解码的? h264编解码代码位于文件src\modules\video_coding\codecs\h264下 #ifndef MODULES_VIDEO_CODING_CODECS_H264_INCLUDE_H264_H_ #define MODULES_VIDEO_CODING_CODECS_H264_INCLUDE_H264_H_#include <memory> #include <vector>#i…

python大一题库西农_生态学(西北农林科技大学)知到智慧树2020章节测试答案...

生态学(西北农林科技大学)知到智慧树2020章节测试答案更多相关问题【单选题】在测定食品中灰分含量时,灼烧残留物不可能存在的是( )A. 蔗糖 B. 钠 C. 钾 D. 氯【单选题】对于老年骨质疏松说法错误的是( )A. 老年骨质疏松症属于继发性骨质疏松症 B. 是使骨质脆性增加导致骨折危险…

EL表达式学习笔记

文章目录EL 表达式是干什么用的EL 表达式的底层原理EL 表达式可以用在哪些地方EL 表达式用来访问 JavaBean 的属性EL 表达式获取请求参数的值EL 表达式用于运算&#xff0c;将结果作为标签的属性值或者直接输出Struts2 的 EL 表达式EL 表达式翻译为 Java 代码的含义EL 表达式示…

【WebRTC---源码篇】(十二)WebRTC/RTX协议

在SDP中可以查询到提前协商好的RTX信息 接受到RTCP NACK 重传RTX包,有效荷载前两个字节为原始seqnumber 如何知道重传的是哪个包 发送RTX

stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案

stackoverflow您可以在Stackoverflow上找到哪些最有趣的答案&#xff1f; Stackoverflow是开发人员的金矿。 它可以帮助我们找到遇到的特定问题的最有用答案&#xff0c;并且我们总是从中学习新事物。 在以下文章中&#xff0c;我们研究了最受欢迎的Java问题和答案&#xff0…

json请求 post vue_Spring Boot+Vueaxios异步请求数据的12种操作(上篇)

Java大联盟致力于最高效的Java学习关注Spring Boot Vue 前后端分离最核心的操作就是通过异步请求完成数据同步&#xff0c;这其中又可以分为很多种不同的情况&#xff0c;比如是 GET 请求还是 POST 请求&#xff1f;参数是普通变量还是 JSON&#xff1f;基于 RESTful 架构如何…

数据库SQL语言分类(DDL/DML/DQL/TCL/DCL)

文章目录一、数据定义语言 DDL&#xff08;一&#xff09;create 数据库对象的创建&#xff08;二&#xff09;alter 修改数据库对象&#xff08;三&#xff09;drop 删除数据库对象&#xff08;四&#xff09;truncate 清空表数据二、数据操纵语言 DML&#xff08;一&#xff…

【WebRTC---源码篇】(十三)WebRTC/Pacer

pacer作用 NextSendTime Timestamp PacingController::NextSendTime() const {Timestamp now = CurrentTime();if (paused_) {return last_send_time_ + kPausedProcessInterval;}// If probing is active, that always takes priority.if (prober_.IsProbing()) {Timest…

卡夫卡如何分区_通过分区在卡夫卡实现订单担保人

卡夫卡如何分区Kafka最重要的功能之一是实现消息的负载平衡&#xff0c;并保证分布式集群中的排序&#xff0c;否则在传统队列中是不可能的。 首先让我们尝试了解问题陈述 让我们假设我们有一个主题&#xff0c;其中发送消息&#xff0c;并且有一个消费者正在使用这些消息。 …

全景视觉空间直线检测_视觉SLAM深度解读

近年来&#xff0c;SLAM技术取得了惊人的发展&#xff0c;领先一步的激光SLAM已成熟的应用于各大场景中&#xff0c;视觉SLAM虽在落地应用上不及激光SLAM&#xff0c;但也是目前研究的一大热点&#xff0c;今天我们就来详细聊聊视觉SLAM的那些事儿。视觉SLAM是什么&#xff1f;…

HTTP网页请求响应的状态码/状态代码

文章目录1开头 询问客户端是否还有请求消息2开头 &#xff08;请求成功&#xff09;表示成功处理了请求的状态代码3开头 &#xff08;请求被重定向&#xff09;表示要完成请求&#xff0c;需要进一步操作。 通常&#xff0c;这些状态代码用来重定向4开头 &#xff08;请求错误&…

某人想在h小时内钓到_为某人命名以重新连接到您的服务器

某人想在h小时内钓到在进行测试自动化时&#xff0c;通常需要知道当前计算机的名称&#xff0c;以提示另一台计算机连接到它&#xff0c;特别是在并行运行测试的情况下。 本周&#xff0c;我试图对服务器进行测试&#xff0c;以使其连接回在从属测试计算机上运行的WireMock服务…

对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)...

前言:面向对象的三大特征封装 (Encapsulation)继承 (Inheritance)多态 (Polymorphism)编程思想&#xff1a;面向过程&#xff1a;做某件事情都需要自己亲历亲为&#xff0c;按照步骤去完成面向对象&#xff1a;做某件事情不需要自己亲历亲为&#xff0c;只需指定特定的对象去完…

C++ 【随想录】(一)模拟矩阵相乘

#include<iostream> using namespace std; const int N 105; int R1[N][N], R2[N][N], ans[N][N];int main() {int m, p, n;cin >> m >> p >> n;for (int i 0; i < m; i) {//录入第一个矩阵for (int j 0; j < p; j) {cin >> R1[i][j];}…

HH SaaS电商系统的结算系统设计

文章目录一、第三方卖家销售货款结算流程说明&#xff1a;销售货款结算逻辑流程图预期收入如何统计二、第三方卖家推广分销佣金结算佣金结算逻辑流程图逾期佣金收入如何统计三、采购货款结算租户采购货款结算流程说明商城采购货款结算流程说明店铺商家的采购货款结算流程说明四…

java8并行流_Java 8:CompletableFuture与并行流

java8并行流这篇文章展示了Java 8的CompletableFuture在执行异步计算时如何与并行流进行比较。 我们将使用以下类对长时间运行的任务进行建模&#xff1a; class MyTask {private final int duration;public MyTask(int duration) {this.duration duration;}public int calc…

postgresql删除索引_PostgreSQL 13 发布,索引和查找有重大改进

9月24日&#xff0c;PostgreSQL全球开发组宣布PostgreSQL 13正式发布&#xff0c;作为世界上使用最多的开源数据库之一&#xff0c;PostgresSQL 13是目前的最新版本。PostgreSQL 13 在索引和查找方面进行了重大改进&#xff0c;有利于大型数据库系统&#xff0c;改进包括索引的…

【WebRTC---源码篇】(十六)WebRTC/NetEQ

WebRTC【4096版本】 NetEQ的作用 进行抖动控制和丢包隐藏,通过该技术可以让音频更平滑 NetEQ插入packet数据 int NetEqImpl::InsertPacketInternal(const RTPHeader& rtp_header,rtc::ArrayView<const uint8_t> payload) {//如果有效荷载payload为空if (paylo…