好文推荐,转自CSDN,原作星辰StarDust

序列序列是具有索引和切片能力的集合.

列表、元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力。

列表、元组、字符串都属于序列

1 列表

列表(List)是Python中非常重要的内置数据类型。列表由一系列元素组成,所有的元组被包含在一对方括号中。列表被创建将后,可以执行添加、删除、修改操作。

列表中可包含任意的Python数据信息,如字符串、数字、列表、元组等。

1.1 列表介绍

列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 [元素1, 元素2, ..., 元素n]。

【例子】>>> list = [ “a”, “b”, “c” ],定义字符列表。

>>> list = [ 1, 2, 3, 4 ],定义数字列表。

>>> list = [ [1,2,3,4], ["a","b","c"] ],定义列表的列表。

>>> list = [ (1,2,3,4), ("a","b","c") ],定义元组列表。

>>> list((1,2))把一个元组转换成一个列表[1,2], list('test')可把

字符串转换成['t','e','s','t']列表

列表须知:列表内元素的个数及元素的值可以改变;

列表内元素用中括号([])包裹;

列表内不同元素之间采用逗号(,)分隔;

列表内可以包含任何数据类型,也可以包括另一个列表;

列表可以通过序号来访问其中的成员;

可以对列表进行插入、删除、排序,修改列表中某元素等操作。

1.2 列表操作

列表的所有操作如下表所示:

1.2.1 列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

1.2.2 列表切片

切片操作(slice)可以从一个列表中获取子列表(列表的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。格式:[start: end: step]

• [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串

• [start:] 从start 提取到结尾

• [:end] 从开头提取到end - 1

• [start: end] 从start 提取到end - 1

• [start: end: step] 从start 提取到end - 1,每step 个字符提取一个

• 左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1

【例子】>>> list = [1, 2, 3, 4, 5, 6, 7]

>>> list[1:] #列出索引1以后的---------[2, 3, 4, 5, 6, 7]

>>> list[:-1] #列出索引-1之前的-------[1, 2, 3, 4, 5, 6]

>>> list[1:3] #列出索引1到3之间的-----[2]

>>> list[::-1]#[7, 6, 5, 4, 3, 2, 1] #形成reverse函数的效果:

1.2.3 浅拷贝和深拷贝浅拷贝:浅拷贝意味着构造一个新的集合对象,然后用原始对象中找到的子对象的引用来填充它。从本质上讲,浅层的复制只有一层的深度。复制过程不会递归,因此不会创建子对象本身的副本。

深拷贝:深拷贝使复制过程递归。这意味着首先构造一个新的集合对象,然后递归地用在原始对象中找到的子对象的副本填充它。以这种方式复制一个对象,遍历整个对象树,以创建原始对象及其所有子对象的完全独立的克隆。

A. 赋值引用a = {1:[1,2,3]}

b = a

print(id(a) == id(b))

输出:True

赋值引用,a 和 b 都指向同一个对象。

B. 浅拷贝a = {1:[1,2,3]}

b = a.copy()

print(id(a) == id(b))

print(id(a[1]) == id(b[1]))

输出:False

True

a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

C. 深度拷贝import copy

a = {1:[1,2,3]}

b = copy.deepcopy(a)

print(id(a) == id(b))

print(id(a[1]) == id(b[1]))

print(id(a[1][0]) == id(b[1][0]))

输出:False

False

True

a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。对于a[1][0]和b[1][0]还是对于对象1的引用,并没有重新新建一个对象,这符合python的存储机制。

1.2.4 其他常用操作

------ 列表排序:

注意排序优先级:数字>大写字母>小写字母>符号>中文

Python list内置sort() 方法用来排序,也可以使用Python内置的全局sorted() 方法对可迭代的序列排序生成新的序列。永久性排序:sort()

list.sort(key=None, reverse=False) 对原列表进行排序。

key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。该方法没有返回值,但是会对列表的对象进行排序。

临时性排序:sorted()

Python内置函数,

反转排序:reverse()

【例子】>>> list1 = [3, 5, 1, 6, 9]

>>> lsit2 = [3, 5, 1, 6, 9]

>>> a = list1.sort() #永久性排序,就是这个列表就变了

>>> print(a, l1)

# None [1, 3, 5, 6, 9]

>>> b =sorted(list1) #临时性排序,就是可以赋值某个变量

>>> print(b, list1)

# [1, 3, 5, 6, 9] [3, 5, 1, 6, 9]

>>> c = list2.reverse()

>>> print(c, list2)

# None [9, 6, 1, 5, 3]

------ list中的append和extend的区别:list.append(object) 向列表中添加一个对象object

list.extend(sequence) 把一个序列seq的内容添加到列表中

2 元组

2.1 元组操作

Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。元组使用小括号,列表使用方括号。

元组可以使用在不希望数据被其他操作改变的场合。

2.2 解压元组

解压(unpack)一维元组(有几个元素左边括号定义几个变量)

【例子】(a, b, c) = (1, 10.31, 'python')

print(a, b, c)

# 1 10.31 python

解压二维元组(按照元组里的元组结构来定义变量)

【例子】t = (1, 10.31, ('OK', 'python'))

(a, b, (c, d)) = t

print(a, b, c, d)

# 1 10.31 OK python

如果你只想要元组其中几个元素,用通配符「*」,英文叫 wildcard,在计算机语言中代表一个或多个元素。下例就是把多个元素丢给了 rest 变量。

【例子】t = 1, 2, 3, 4, 5

a, b, *rest, c = t

print(a, b, c) # 1 2 5

print(rest) # [3, 4]

如果你根本不在乎 rest 变量,那么就用通配符「*」加上下划线「_」。

【例子】a, b, *_ = t

print(a, b) # 1 2

3 字符串

3.1 字符串介绍

字符串的定义:

字符串为引号之间的字符集合,这里引号包括单引号、双引号,三引号(三个连续的单引号或双引号)。

【例子】>>> s1='I love Python'

>>> s1

'I love Python'

>>> s2=str([1,2,3])

>>> s2

'[1, 2, 3]'

Python的转义字符

字符串前加 u、r、bu"中文字符组成的字符串"

作用:以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

r"\n\n\n\n”  # 表示一个普通生字符串 \n\n\n\n,而不表示换行

作用:去掉反斜杠的转义机制,常用于正则表达式,对应着re模块。

b’Hello World’ # 表示这是一个 bytes 对象

作用:b" "前缀表示:后面字符串是bytes 类型。在网络编程中,服务器和浏览器只认bytes 类型数据。在 Python3 中,bytes 和 str 的互相转换方式是str.encode(‘utf-8’)和bytes.decode(‘utf-8’)。

3.2 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

【例子】print "My name is %s and weight is %d kg!" % ('Zara', 21)

# My name is Zara and weight is 21 kg!

python 字符串格式化符号:

格式化操作符辅助指令:

3.3 format 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

【例子】>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序

'hello world'

>>> "{0} {1}".format("hello", "world") # 设置指定位置

'hello world'

>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置

'world hello world'也可以设置参数:print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

# 通过字典设置参数

site = {"name": "菜鸟教程", "url": "www.runoob.com"}

print("网站名:{name}, 地址 {url}".format(**site))

# 通过列表索引设置参数

my_list = ['菜鸟教程', 'www.runoob.com']

print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

数字格式化^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

+ 表示在正数前显示 +,负数前显示 -;(空格)表示在正数前加空格

b、d、o、x 分别是二进制、十进制、八进制、十六进制。

【例子】>>> print("{:.2f}".format(3.1415926));

3.14

>>> print ("{} 对应的位置是 {{0}}".format("runoob"))

runoob 对应的位置是 {0}

练习题:

1、列表操作练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列操作:在列表的末尾增加元素15

在列表的中间位置插入元素20

将列表[2, 5, 6]合并到lst中

移除列表中索引为3的元素

翻转列表里的所有元素

对列表里的元素进行排序,从小到大一次,从大到小一次>>> lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

>>> lst.append(15)

>>> lst.insert(5,20)

>>> lst.extend([2, 5, 6])

>>> del lst[3]

>>> lst.reverse()

>>> lst.sort()

>>> lst.sort(reverse=True)

原文地址

https://blog.csdn.net/OuDiShenmiss/article/details/107599379Love&Share [ 完 ]

python元组和列表的联系_Python | 一文看懂Python列表、元组和字符串操作相关推荐

  1. c 提取引号中间的字符串_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

  2. angular 字符串转换成数字_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

  3. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

  4. 一文看懂Python collections模块的高效数据类型

    原作: George Seif, 发表于medium.com, 大江狗原创翻译, 并对原文稍作修改. Python的最大优势之一是其广泛的模块和软件包.这将Python的功能扩展到许多受欢迎的领域,包 ...

  5. 一文看懂Python 爬虫 进阶(三)

    一文看懂Python 爬虫 进阶(三) 文章目录 一文看懂Python 爬虫 进阶(三) **猫眼电影(xpath)** **链家二手房案例(xpath)** **百度贴吧图片抓取** 这篇几乎都是代 ...

  6. java和python的web自动化有什么区别-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  7. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

  8. 一文看懂Python(一)-----列表和元组篇

    一.列表 1.1 创建一个列表 member = ['胖虎','大熊','小夫','小叮当','小妹妹'] member 1.2 创建一个混合列表 mix = [1,'胖虎','3.14',[1,2, ...

  9. python 推迟运行_一文看懂Python的time模块sleep()方法和strftime()方法

    概述 今天主要介绍一下Python的time sleep()方法和strftime()方法. 一.Python time sleep()方法 Python time sleep() 函数推迟调用线程的 ...

最新文章

  1. To rename a docker image
  2. PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
  3. netty+mina 区别概要
  4. __declspec(selectany)的作用
  5. php 写一个大富翁游戏,抽奖系列:如何用纯js做一个大富翁游戏
  6. 吉林大学计算机学院换届,CCF吉林大学学生分会举行换届选举会议-中国计算机学会...
  7. 高颜值智能存储 华三魔术家M2无线云盘评测
  8. 从“老公”的称呼来历,看男人地位的变迁!
  9. IDEA 之搭建spring-boot maven报错Project ‘org.springframework.boot:spring-boot-starter-parent:2.2.0.RELEAS
  10. 微信语音amr文件转mp3
  11. Modern Standby 调试的准备
  12. 顶级计算机专家一年赚多少,成为一个计算机专家需要多高的IQ?请实话实说
  13. 智能指针手表_反对智能手表
  14. 【python文字游戏】飞花令
  15. php魔方阵,利用C语言玩转魔方阵实例教程
  16. 移动通信网络规划:无线设备参数
  17. Science封面6连发:人类最完整的基因组测序完成!
  18. 2021年记录杭州买房大事
  19. 电脑键盘功能基础知识,快速入门,抓住这份详细教程
  20. 微信小程序(五)--- Vant组件库,API Promise化,MboX全局数据共享,分包相关

热门文章

  1. 怎么实现两周联动加减速_LOL:野辅联动成版本主旋律,三大辅助对线游走兼备...
  2. cleanmymac 4.2_市委刚刚批准:11月1号立即执行! 农业银行存款利率4.2%,1万元存1年,有多少利息?...
  3. python链表结构_CodeSalt | Python数据结构的实现 — 链表
  4. java 8 localdatetime_java8 时间 LocalDateTime常用方法
  5. 信息传输计算机服务业,信息传输软件和信息技术服务业包括哪些
  6. html浮动代码_(10)让“盒子”动起来:① 浮动 | CSS
  7. apache php mysql开发优点_Zope的优点和Apache PHP MySQL的比较_PHP
  8. oracle中怎么算奇数,oracle - 如何在oracle中获取奇数列 - SO中文参考 - www.soinside.com...
  9. ubuntu 安装 guetzli
  10. 大数据学习笔记24:利用MR改造Zebra项目