python序列数据类型_Python 数据类型 之 序列类型

序列:表示索引为非负整数的有序对象集合,所有序列都支持迭代

序列类型有:字符串,列表,元组 三种

字符串也是一种序列

列表和元组是任意python对象的序列或叫有序集合

字符串和元组不可变序列,列表支持插入、删除和替换元素

序列类型的通用操作方法:

1. 索引运算。s[i] [i]可以使用负数,即倒着取值

2. 切片运算。s[i:j] ,切片后会生成新的对象

3. 扩展切片。s[i:j:stride],指定步长值

obj[1:] , obj[-2:-1],obj[0:6:2]

字符串 str

常用操作:

索引

切片

移除空白 obj.strip()

分割 obj.split()

长度 len(obj) , obj.__len__()

返回索引 obj.index(),obj.find()

输出位置 obj.center(),obj.ljust(),obj.rjust()

...

ContractedBlock.gif

ExpandedBlockStart.gif

__len__(self, /)

Return len(self).| capitalize(...) '''首字母大写'''

| S.capitalize() ->str|

|Return a capitalized version of S, i.e. make the first character| have upper case andthe rest lower case.>>> 'test string'.capitalize()'Test string'

|center(...)| S.center(width[, fillchar]) ->str| Return S centered in a string of length width. Padding is

| done using the specified fill character (default isa space)>>> print(8*'#')########

>>> 'test'.center(20,'*')'********test********'

|ljust(...)| S.ljust(width[, fillchar]) ->str>>> 'test'.ljust(10,'<')

Out[61]: 'test <<<<<'

|rjust(...)| S.rjust(width[, fillchar]) ->str>>> 'test'.rjust(10,'>')

Out[59]: '>>>>> test'

| count(...) '''统计字符出现的个数'''

| S.count(sub[, start[, end]]) ->int>>> 'test string'.count('s')

In [8]: 'test string'.count('s',1,4)| encode(...) '''指定字符编码'''

| S.encode(encoding='utf-8', errors='strict') ->bytes|

| Encode S using the codec registered for encoding. Default encoding is 'utf-8'.>>> '中文'.encode('gbk')

b'\xd6\xd0\xce\xc4'

'''utf8可以直接转成gbk(内部实现通过unicode)'''

| endswith(...) '''判断是否以某个字符后缀结束'''

| S.endswith(suffix[, start[, end]]) ->bool|

| Return True ifS ends with the specified suffix, False otherwise.>>> 'test string'.endswith('t',1,4)

True|startswith(...)| S.startswith(prefix[, start[, end]]) ->bool| expandtabs(...) '''将tab转换成空格'''

| S.expandtabs(tabsize=8) ->str>>> 'te\tst'.expandtabs()'te st'

|format(...)| S.format(*args, **kwargs) ->str>>> info='my name is {0}, sex {1}'

>>> info.format('Jack','male')'my name is Jack, sex male'

>>> info='my name is {Name}, sex {Sex}'

>>> info.format(Name='Lucy',Sex='female')'my name is Lucy, sex female'

| find(...) '''返回字符的索引, 如有多个,只返回第一个字符的索引,不存在返回-1'''

| S.find(sub[, start[, end]]) ->int|

| Return the lowest index in S where substring sub isfound,| such that sub iscontained within S[start:end].| Return -1on failure.>>> 'test string'.find('t',2,6)| index(...) '''返回字符的索引, 如有多个,只返回第一个字符的索引,不存则报异常'''

| S.index(sub[, start[, end]]) ->int|

| Like S.find() but raise ValueError when the substring is notfound.>>> 'test string'.index('a')

ValueError: substringnotfound>>> 'test string'.find('a')-1

|rfind(...)| S.rfind(sub[, start[, end]]) ->int|rindex(...)| S.rindex(sub[, start[, end]]) ->int|isalnum(...)| S.isalnum() ->bool|isalpha(...)| S.isalpha() ->bool|isdecimal(...)| S.isdecimal() ->bool|isdigit(...)| S.isdigit() ->bool|islower(...)| S.islower() ->bool| Return True if all cased characters in S are lowercase and there is

| at least one cased character inS, False otherwise.|isupper(...)| S.isupper() ->bool| Return True if all cased characters in S are uppercase and there is

| at least one cased character inS, False otherwise.>>> 'TEST STRING'.isupper()

True|upper(...)| S.upper() ->str| istitle(...) '''判断是否所有单词首字母大写'''

| S.istitle() ->bool|

| Return True if S is a titlecased string and there isat least one| character inS>>> 'Test String'.istitle()

True|title(...)| S.title() ->str|

|Return a titlecased version of S>>> 'test string'.title()'Test String'

| join(...) '''指定连接符将序列的元素连接起来'''

| S.join(iterable) ->str|

| Return a string which is the concatenation of the strings in the iterable. The separator between elements isS.>>> ls=['a','b','c']>>> '-'.join(ls)'a-b-c'

| split(...) '''将字符串分割,形成列表, 不指定分隔符默认为空格'''

| S.split(sep=None, maxsplit=-1) ->list of strings|

| Return a list of the words inS, using sep as the| delimiter string. If sep is notspecified, any whitespace string| isa separator.>>> 'test string'.split()

['test', 'string']>>> 'test=string'.split('=')

['test', 'string']>>> 'this is test string'.split(maxsplit=2)

['this', 'is', 'test string']| rsplit(...) '''从右到左进行分割'''

| S.rsplit(sep=None, maxsplit=-1) ->list of strings| strip(...) '''去除首尾的字符,默认为空格'''

| S.strip([chars]) ->str|

| Return a copy of the string S with leading andtrailing|whitespace removed.| If chars is given and not None, remove characters inchars instead.>>> 'test string'.strip()'test string

>>> '### test string ###'.strip('#')'test string'

>>> '### test string ###'.lstrip('#')'test string ###

>>> '### test string ###'.rstrip('#')'### test string'

|partition(...)| S.partition(sep) ->(head, sep, tail)|

| Search for the separator sep in S, and return the part before it, the separator itself, and the part after it. If the separator is not

| found, return S andtwo empty strings.>>> '### test ***'.partition('test')

('###', 'test', '***')|rpartition(...)| S.rpartition(sep) ->(head, sep, tail)|replace(...)| S.replace(old, new[, count]) ->str>>> 'abc'.replace('b','2')'a2c'

| swapcase(...) '''大写转小写,小写转大写'''

| S.swapcase() ->str|translate(...)| S.translate(table) ->str| maketrans(x, y=None, z=None, /)| Return a translation table usable forstr.translate().>>> intab='abcd'

>>> outtab='1234'

>>> table=str.maketrans(intab,outtab)>>> 'abcdefg'.translate(table)'1234efg'

help(str)

列表 list

创建列表:

ls=['a','b','c'] 或 list(['a','b','c']) 或 list(('a','b','c'))

常用操作:

索引

切片

追加 obj.append(),obj.extend()

插入 obj.insert()

删除 __delitem__(),obj.remove(),obj.pop()

长度 len(obj)

返回索引 obj.index()

循环 for,while

包含 in

注意:append(),extend(),insert(),remove(),pop() 等都是直接修改列表,不会产生新的对象,不能对列表操作这些方法后赋值给另外一个变量,例如:ls2=ls1.append(),如要赋值可以使用__add__()

ContractedBlock.gif

ExpandedBlockStart.gif

| __contains__(self, key, /)| Return key inself.| __delitem__(self, key, /) '''删除指定位置的元素'''

|Delete self[key].>>> ls=['a','b','c']>>> ls.__delitem__(1)>>> print(ls)

['a', 'c']| __len__(self, /) '''统计列表的长度(即元素的个数)'''

|Return len(self).| append(...) '''在末尾追加单个元素'''

| L.append(object) -> None --append object to end|clear(...)| L.clear() -> None -- remove all items fromL| copy(...) '''浅拷贝'''

| L.copy() -> list --a shallow copy of L| count(...) '''统计某个元素的出现个数'''

| L.count(value) -> integer -- returnnumber of occurrences of value>>> ls=['h','e','l','l','o']>>> ls.count('l')2

| extend(...) '''从序列里扩展元素'''

| L.extend(iterable) -> None -- extend list by appending elements fromthe iterable>>> ls=['h','e','l','l','o']>>> ls.extend('world')>>> print(ls)

['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']| index(...) '''获取某个元素的索引,如有多个,只返回第一个'''

| L.index(value, [start, [stop]]) -> integer -- returnfirst index of value.| Raises ValueError if the value is notpresent| insert(...) '''在指定的索引迁插入'''

| L.insert(index, object) --insert object before index| pop(...) '''删除指定位置的元素并获取到这个元素,默认为最后一个元素'''

| L.pop([index]) -> item -- remove and returnitem at index (default last).| Raises IndexError if list is empty or index isout of range.>>> ls=['a','b','c',]>>> ls.pop(2)'c'

>>>ls.pop()'b'

| remove(...) '''删除指定的元素'''

| L.remove(value) -> None --remove first occurrence of value.| Raises ValueError if the value is notpresent.>>> ls=['a','b','c',]>>> ls.remove('c')| reverse(...) '''倒序'''

| L.reverse() -- reverse *IN PLACE*

>>> ls=['a','b','c']>>>ls.reverse()>>> print(ls)

['c', 'b', 'a']| sort(...) '''对列表内的元素进行排序, 可以指定key'''

| L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*

>>> ls = ['Chr1-10.txt','Chr1-1.txt','Chr1-2.txt','Chr1-14.txt','Chr1-3.txt','Chr1-20.txt','Chr1-5.txt']>>> ls.sort(key=lambda d : int(d.split('-')[-1].split('.')[0]))>>> print(ls)

['Chr1-1.txt', 'Chr1-2.txt', 'Chr1-3.txt', 'Chr1-5.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-20.txt']

help(list)

元组 tuple

创建元组:

tp=('a','b','c') 或 tp=tuple((1,2,3)) 或 tp=tuple(['x','y','z'])

常用操作:

索引

切片

迭代 for / while

长度 len(obj)

包含 in / not in

注意:元组本身是不可变对象 ,长度固定,所以代码更安全。 所谓的“不变”是指元组的每个元素指向永远不变,元组本身不可变,但元组内嵌套了可变类型的元素,此元素的修改不会返回新元组.

即:

元组的元素只读,不可修改

元组中元素的元素可以修改

如:

>>> tp=(1,'a',['x'])

>>> tp[2].append('y')

>>> print(tp)

(1, 'a', ['x', 'y'])

ContractedBlock.gif

ExpandedBlockStart.gif

| __add__(self, value, /)| Return self+value.>>> tp=(1,2,3)>>> tp.__add__(('a','b','c'))

(1, 2, 3, 'a', 'b', 'c')| __len__(self, /)|Return len(self).|count(...)| T.count(value) -> integer -- returnnumber of occurrences of value|index(...)| T.index(value, [start, [stop]]) -> integer -- returnfirst index of value.| Raises ValueError if the value is not present.

help(tuple)

提示:创建元组或列表后面最好带逗号 如 ls=[1,2,3,] 、tp=(1,2,3,)

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

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

相关文章

word List 45

word List 45 One of the pressing problems our nation faces today is how to strike a balance between economic development and environmental protection. 我们国家当今面临的最紧迫的问题之一就是如何平衡经济发展和环境保护之间的关系。 Corruption has existed since…

2020 年 中国.NET开发者调查报告

微信公众号dotnet跨平台2020年初做的一个关于中国.NET开发者调查收到了开发者近 1400 条回复。这份调查报告涵盖了开发者工具链的所有部分&#xff0c;包括编程语言、应用架构、应用服务器、运行时平台、框架技术、框架配置、IDE、.NET/.NET Core 发行版部署模式、构建工具和Ku…

列名无效如何解决_XSKY ClickHouse如何实现存算分离

在介绍ClickHouse之前&#xff0c;说一下OLAP。OLAP也叫联机分析处理(Online Analytical Processing)。OLAP系统以维度模型来存储历史数据&#xff0c;其主要存储描述性的数据并且在结构上都是同质的。01ClickHouseOLAP应用有如下特点&#xff1a;1、大多数的请求是读请求&…

word List 46

word List 46 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

.NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)

06 | 作用域与对象释放行为接下来&#xff0c;把服务切换为单例模式&#xff0c;通过工厂的方式services.AddSingleton<IOrderService>(p > new DisposableOrderService());启动程序&#xff0c;输出如下&#xff1a;1 2 接口请求处理结束可以看到代码实际上不会被释放…

C++实现邻接表存储的图及bfs遍历

#include <iostream> #include <queue> using namespace std; typedef char VerTexType; #define MVNum 100 typedef char OtherInfo; bool vis[MVNum];//邻接表 typedef struct ArcNode {int adjvex;struct ArcNode *nextarc;OtherInfo info; } ArcNode;//弧(边)t…

cmd小游戏_使用pygame制作Flappy bird小游戏

原文链接&#xff1a;【Python】使用Pygame做一个Flappy bird小游戏&#xff08;一&#xff09;​mp.weixin.qq.com最近看到很多大佬用强化学习玩Flappy bird。所以打算也上手玩一玩&#xff0c;但是苦于没找到pc上的这个游戏&#xff0c;找了点资料&#xff0c;发现并不是很难…

word List 47

word List 47 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

使用BeetleX构建基础的SSL网络通讯

BeetleX的使用非常简单&#xff0c;通过Stream的数据流模式可以让你轻松处理网络数据&#xff1b;在处理SSL加密通讯的时候组件的使用也是非常方便&#xff0c;只需要简单的配置证书即可完成基于SSL的网络安全通讯&#xff0c;接下来介绍一下通过组件快速构建一个安全可靠的网络…

调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...

面试官: ButterKnife为什么执行效率为什么比其他注入框架高&#xff1f;它的原理是什么心理分析&#xff1a; ButterKnife框架一直都是使用&#xff0c;很少又开发者对butterknife深入研究的&#xff0c;既然你是面试Android高级岗位&#xff0c;自然需要有相应被问到原理的准备…

算法---会议最大安排问题

算法—会议最大合理安排问题 参考&#xff1a;趣学算法 代码&#xff1a; #include <stdio.h> #include <stdlib.h> typedef struct meet {int beg;//开始int end;//结束int num;//会议编号 }meet; int cmp44(meet m1,meet m2) {//越早结束的越优先&#xff0c;…

小cookie,大智慧

Cookie是什么&#xff1f;cookies是你访问网站时创建的数据片段文件&#xff0c;通过保存浏览信息&#xff0c;它们使你的在线体验更加轻松。使用cookies&#xff0c;可以使你保持在线登录状态&#xff0c;记录你的站点偏好&#xff0c;并为你提供本地化支持。First-party cook…

java 最少使用(lru)置换算法_LRU算法详解及最简单的Java实现

更多内容&#xff0c;欢迎关注微信公众号&#xff1a;全菜工程师小辉~LRU(Least recently used&#xff0c;最近最少使用)算法根据数据的历史访问记录来进行淘汰数据&#xff0c;其核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法的表现新…

word List 48

word List 48 如果存在什么问题&#xff0c;欢迎批评指正!谢谢&#xff01;

一文读懂常用开源许可证

社区时常为流行产品中有争议的开源许可证而感到震惊&#xff0c;这引起各方关注&#xff0c;纷纷争论何为真正的开源许可证。去年&#xff0c;Apache 基金会&#xff08;Apache Foundation&#xff09;禁止使用 Facebook React 那些具有争议的专利组件&#xff0c;这引发了轩然…

[蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)

题目描述 小明有3颗红珊瑚&#xff0c;4颗白珊瑚&#xff0c;5颗黄玛瑙。 他想用它们串成一圈作为手链&#xff0c;送给女朋友。 现在小明想知道&#xff1a;如果考虑手链可以随意转动或翻转&#xff0c;一共有多少不同的组合样式&#xff1f; 输出 请你输出该整数。不要输出任…

word List 49

word List 49 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

(四)开源C# WPF控件库《AduSkin – UI》

微信公众号&#xff1a;【Dotnet9的博客】&#xff0c;网站&#xff1a;【Dotnet9】&#xff0c;问题或建议&#xff1a;【请网站留言】&#xff0c; 如果对您有所帮助&#xff1a;【欢迎赞赏】。https://dotnet9.com追求极致&#xff0c;永臻完美A Beautiful WPF Control UI一…

python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...

本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数。 主要步骤&#xff1a; 1.提示用户输入爬取的内容及页码。 2.根据用户输入&#xff0c;获取网址列表。 3.模拟浏览器向服务器发送请求&#xff0c;获取响应。 4.利用xpath方法找到图片的标签。 5.保存数据。 代码…

word List 50

word List 50 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;