Python 学习日记第二篇 -- 列表,元组

一、列表

    列表是一个可以包含所以数据类型的对象的位置有序集合,它是可以改变的。

   1、列表的序列操作(Python3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> one_list = [1,2,3,4]
>>> two_list = ["jonny","jery","david"]
#统计元素数量
>>> len(one_list)
4
#索引,根据偏移量,左起从0开始,右起从-1开始
>>> one_list[0]
1
>>> one_list[-1]
4
#切片
>>> one_list[0:2]
[1, 2]
>>> one_list[:-1]
[1, 2, 3]
>>> one_list[1:]
[2, 3, 4]
#步进,默认为1
>>> one_list[::2]
[1, 3]
#扩展进来新的列表
>>> new_list = one_list + two_list
>>> print(new_list)
[1, 2, 3, 4, 'jonny''jery''david']

   

   2、列表的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#在列表中加入元素
>>> one_list.append("join")
>>> print(one_list)
[1, 2, 3, 4, 'join']
#查看元素在列表中的偏移量
>>> one_list.index('join')
4
#统计元素在列表中出现的次数
>>> one_list = [1,2,3,4,"join","jonny",3,4,2,45,32,"gg",45]
>>> one_list.count(3)
2
#在列表中指定位置插入元素
>>> one_list.insert(1,"insert_ele")
>>> print(one_list)
[1, 'insert_ele', 2, 3, 4, 'join''jonny', 3, 4, 2, 45, 32, 'gg', 45]
#移除指定元素
>>> one_list.remove("insert_ele")
>>> print(one_list)
[1, 2, 3, 4, 'join''jonny', 3, 4, 2, 45, 32, 'gg', 45]
#通过附加来自可迭代的元素扩展列表(字符串,列表,元组等)
>>> one_list.extend("extend")
>>> print(one_list)
[1, 2, 3, 4, 'join''jonny', 3, 4, 2, 45, 32, 'gg', 45, 'e''x''t''e''n''d']
#移除指定偏移量的元素,不指定则为随机移除
>>> one_list = [1,2,3,4]
>>> one_list.pop()
4
>>> one_list.pop(1)
2
>>> print(one_list)
[1, 3]
#根据ASCII码排序,python2.X系列可对所有元素排序,3.X系列只能对相同类型元素排序
Python3.6
>>> one_list = [3,6,2,8]
>>> one_list.sort()
>>> print(one_list)
[2, 3, 6, 8]
Python2.7
>>> two_list = [3,6,4,7]
>>> two_list.extend("djttdkx01")
>>> print two_list
[3, 6, 4, 7, 'd''j''t''t''d''k''x''0''1']
>>> two_list.sort()
>>> print two_list
[3, 4, 6, 7, '0''1''d''d''j''k''t''t''x']
#反转列表
>>> two_list.reverse()
>>> print two_list
['x''t''t''k''j''d''d''1''0', 7, 6, 4, 3]
#列表的复制方法一:复制第一级,对于嵌套的列表只是复制其引用位置
>>> one_list = [1,2,3,4,[5,6,7,8]]
>>> two_list = one_list[:]
>>> print(two_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>> id(one_list)
5697352
>>> id(two_list)
50197576
#列表复制方法二:复制第一级,对于嵌套的列表只是复制其引用位置
>>> three_list = one_list.copy()
>>> print(three_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>> id(three_list)
49960008
#列表复制方法三:copy模块的深度复制
>>> import copy
>>> four_list = copy.deepcopy(one_list)
>>> print(four_list)
[1, 2, 3, 4, [5, 6, 7, 8]]
>>> one_list[4][0] = 55
>>> print(two_list)
[1, 2, 3, 4, [55, 6, 7, 8]]
>>> print(three_list)
[1, 2, 3, 4, [55, 6, 7, 8]]
>>> print(four_list)
[1, 2, 3, 4, [5, 6, 7, 8]]


    3、列表的嵌套

1
2
3
4
5
>>> one_list = [2,3,1,7,[2,"gg","david"],87,98]
>>> one_list[4][1][1]
'g'
>>> one_list[4][2]
'david'

    

    4、列表解析

1
2
3
4
5
6
7
8
>>> one_list = [[1,2,3],[4,5,6],[7,8,9]]
>>> new_list = [row[0] for row in one_list]
>>> print(new_list)
[1, 4, 7]
>>> two_list = [row[1] % 2 for row in one_list]
>>> print(two_list)
[0, 1, 0]

   5、练习

1
2
3
4
5
6
7
8
9
10
11
12
13
'''
练习:找列表中的9替换成9999
同时找出所有的34,全删掉
'''
one_list = ["jym","alex",9,"jonny","sun",3,6,7,8,2,3,1,9,34,543,43,32,34,"gg","jids"]
print(one_list)
for in range(one_list.count(9)):
    one_list [one_list.index(9)] = 9999
for in range(one_list.count(34)):
    del one_list[one_list.index(34)]
print(one_list)

wKioL1ijNDKBMJpTAACNmLhvXlg809.png-wh_50



二、元组

   元组是不可改变的列表,编写在圆括号中,支持任意类型,任意嵌套等常见操作

   1、元组的序列操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> one_tuple = (1,2,3,4)
#统计元素个数
>>> len(one_tuple)
4
#元组附加
>>> two_tuple = one_tuple + (5,6)
>>> print(two_tuple)
(1, 2, 3, 4, 5, 6)
#索引
>>> one_tuple[0]
1
>>> one_tuple[-2]
3

   2、元组的方法

1
2
3
4
5
6
7
#查看元素在元组中的偏移量
>>> one_tuple.index(2)
1
#统计元素在元组中出现的次数
>>> one_tuple.count(2)
1

   3、元组的嵌套

    元组本身的元素是不可被修改的,但元组中嵌套的字典或列表的元素是可变的。

1
2
3
4
5
6
7
8
9
>>> t1 = (1,2,{'k1':'v1'})
>>> t1[2]['k1'] = 'v2'
>>> print(t1)
(1, 2, {'k1''v2'})
>>> t2 = (1,2,[1,2])
>>> t2[2][0] = 'new1'
>>> print(t2)
(1, 2, ['new1', 2])

   


本文转自 元婴期 51CTO博客,原文链接:http://blog.51cto.com/jiayimeng/1897851


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

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

相关文章

【Gamma】PhyLab 测试报告

PhyLab Gamma测试报告 测试中发现的bug Gamma阶段新Bug Bug可能原因部分错误码设置与原先抛异常的逻辑冲突原先代码中使用了一些特殊的办法处理异常Beta未发现Bug Bug可能原因控制台新建实验编号不能以0开头后端处理编号会将其前导0去除,以数字形式存储,…

轻松学习分布式|系列3|分布式数据库。

我们继续来讲分布式,回到我们的创业游戏。 我们的业务规模上来了,客户也越来越忠诚了。很多客户都通过我们的订票服务,来方便自己的行程。 那对这些老客户,我们的宗旨是:要不断超越客户的期待。 所以,我们要…

linux增加端口失败,端口没被占用,怎么会bind失败呢?

今天在一个服务器上部署一个webserver的时候,提示我bind端口失败,我习惯性的用netstat看了下,没有被占用啊!把问题分享出来后,给力的同事们搜索到了ip_local_port_range这个东西这个东西对应的是/proc/sys/net/ipv4/ip…

安装输入发

直接在系统 ——系统管理 ——语言支持 选——中文从新启动 sudo apt-get install scim-pinyin安装JAVA环境支持 sudo apt-get install sun-java-jre()要是 apt -get 命令不能用 可能是你 的 源有问题 可以 更新一下 在系统 -系统管理 源设置 选这台湾的 就可以 …

(第2篇)一篇文章教你轻松安装hadoop

摘要: 这篇文章将会手把手教你安装hadoop,只要你细心按照文章中的步骤操作,hadoop肯定能正确安装,绝对不会让你崩溃 博主福利 给大家赠送一套hadoop视频课程 授课老师是百度 hadoop 核心架构师 内容包括hadoop入门、hadoop生态架构以及大型ha…

python接口自动化2-发送post请求

前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的。登录问题解决了,后面都简单了。 一、查看官方文档 1.学习一个新的模块,其实不用去百度什么的&am…

Linux查看tar实用程序,linux tar指令常用选项

linux的tar指令经常被用到,因为压缩文件的时候通常需要打包文档,而tar指令就是打包指令,同时gzip压缩程序和bzip2压缩程序都是支持tar指令的,所以tar指令在打包的同时还可以用gzip和bzip进行压缩,这样多文件可以打包的…

DaVinci各版本安装指南

链接: https://pan.baidu.com/s/1g1kaXZxcw-etsJENiW2IUQ?pwd0531 ​ #2024版 1.鼠标右击【DaVinci_Resolve_Studio_18.5(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 DaVinci_Resolve_Studio_18.5(64bit)】。 2.打开解压后的文…

使用 Servlet 读取表单数据

Technorati 标签: servlet;java 一、概述 Servlet 有一个比较好的功能就是可以自动处理表单提交的数据。我们只需要调用HttpServletRequest#getParameter(String name),就可以获得指定参数的值(String),注意此方法是大小写敏感的。…

linux文档权限

1、登录 root 用户:su - mac一开始进入创建的用户是具有管理员权限的用户,但是密码却不是进入 root 用户的密码,可以使用 sudo su - 免密进入 root 用户。 2、退出 root 用户:exit 3、列出档案(包括隐藏的档案&#xf…

linux开启ping服务,Linux 云服务器禁止和开启Ping

原标题:Linux 云服务器禁止和开启Ping在使用Linux服务器的时候,一般系统默认是开启ping的,比如我们可以ping测试网络的延迟质量。当然也有部分服务商是可以通过安全组设置禁止ping的,我们可以设置安全组对应项目开启或禁止ping&am…

红外感应模块+蜂鸣器实现简易报警(转)

拿到了一个红外感应模块HC-SR501,于是就用它和蜂鸣器简单试验了下。主要是试验一下这个红外感应模块的功能,所以代码也写的很随便啦,逻辑上也欠考虑。实现基本功能:运行脚本后,感应模块每隔一定时间检测,如…

linux运行apktool签名,解决Linux中使用ApkTool遇到问题

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?遇到问题在Linux中使用IntelliDroid工具时,按要求配置好环境之后,始终无法成功运行该工具内部的ApkTool,导致后续的安卓静态分析…

python 脚本学习(二)

task1: 在一个文件中,单词之间使用空格、分号、逗号或者句号分隔,请提取全部单词。 代码实例: 1234567891011#!/usr/local/python27/bin/python2.7import sys import re words [] with open(sys.argv[1]) as f: for line in f: #…

2.2 Consumer API官网剖析(博主推荐)

不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ 2.2 Consumer API 2.2、消费者API 随着0.9.0版本,我们已经增加了一个新的Java消费者替换我们现有的基于zookeeper的高级和低级消费者。这个客户端还是测试版的质量…

mybatis-generator-gui如何打包成exe

快速阅读: ​ 用wix和inno setup把mybatis-generator-gui 打包成exe和安装文件。 以后使用的时候方便,不用每次打开eclipse运行。 使用inno setup 5 和wix 3.11 基于mybatis generator开发一款界面工具, 非常容易及快速生成Mybatis的Java POJO文件及数据…

NeHe OpenGL教程 第三十课:碰撞检测

转自【翻译】NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改。对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢。 NeHe OpenGL第三十课…

andorid手机电脑操作

之前一直使用androidscreencast在pc上对手机进行操作,好久都没用了,前些天再次用的时候,提演示样例如以下: 决定还是自己写一个吧,由于7月份要做一个小分享,打算讲一些android的东西,须要在电脑上显示手机这边的画面,提供一定的操作. 花了一点时间做好了,给大家截一个图,代码放…

在组策略中使用脚本为域用户添加网络打印机

使用脚本为用户添加网络打印机 如果你想让培训部门的用户登录后就能添加网络打印机,就可以使用登录脚本来实现。其中DCServer是域控制,MarketPC1是市场部门的计算机,韩立辉用户是培训部门的用户。下面就验证使用组策略为培训部门的用户添加网…

为什么我从 Git Flow 开发模式切换到了 Trunk Based 开发模式?

我已经使用 Git Flow 构建我的 Git 分支有几年了。但是,我遇到了 Git Flow 的一些问题,其中大部分来自长期存在的分支。解决这些问题的方案就是 Trunk Based Development。这是一个非常简单的技术,也是有效的持续交付的基础。在这篇文章中&am…