pytho序列,字符串,元组---学习笔记
来源:互联网 发布:网络借贷安全班会 编辑:程序博客网 时间:2024/06/10 19:12
python string.zfill() 方法/函数:垫零左侧的字符串,以填补宽度。
python 序列操作
seq[ind] 获得下标为 ind 的元素
seq[ind1:ind2] 获得下标从 ind1 到 ind2 间的元素集合
seq * expr 序列重复 expr 次
seq1 + seq2 连接序列 seq1 和 seq2
obj in seq 判断 obj 元素是否包含在 seq 中
obj not in seq 判断 obj 元素是否不包含在 seq 中
1.连接操作符( + )
这个操作符允许我们把一个序列和另一个相同类型的序列做连接。语法如下:
sequence1 + sequence2
*对字符串来说,这个操作不如把所有的子字符串放到一个列表或可迭代对象中,然后调用一个 join方法来把所有的内容连接在一起节约内存;类似地,对列表来说,我们推荐读者用列表类型的extend()方法来把两个或者多个列表对象合并
2.切片操作符 ( [], [:], [::] )
sequence[index]
可以使用负索引,范围是 -1 到序列的负长度,-len(sequence), -len(sequence) <= index <= -1.正负索引的区别在于正索引以序列的开始为起点,负索引以序列的结束为起点.
因为 Python 是面向对象的,所以你可以像下面这样直接访问一个序列的元素(不用先把它
赋值给一个变量):
>>> print ('Faye', 'Leanna', 'Daylen')[1]
Leanna
sequence[starting_index:ending_index]
*sequence[0:3]==sequence[:3] (一端可省略)
sequence[starting_index:ending_index:step]
以下是几个例子:
>>> s = 'abcdefgh'
>>> s[::-1] # 可以视作"翻转"操作
'hgfedcba'
>>> s[::2] # 隔一个取一个的操作
'aceg'
*切片索引的语法要比简单的单一元素索引灵活的多。开始和结束素引值可以超过字符串的长度。
>>> ('Faye', 'Leanna', 'Daylen')[-100:100]
('Faye', 'Leanna', 'Daylen')
>>> for i in [None] + range(-1, -len(s), -1):
... print "s[:%s]" % (i)
... print s[:i]
...
s[:None]
abcdef
s[:-1]
abcde
s[:-2]
abcd
s[:-3]
abc
s[:-4]
ab
s[:-5]
a
**用 None 作为索引值,这样一来就可以满足你的需要,比如说,在你想用一个变量作为索引来从第一个到遍历最后一个元素的时候:
字符串
*Python 里面单引号和双引号的作用是相同的
>>> aString = 'Hello World!' # 使用单引号
>>> anotherString = "Python is cool!" # 使用双引号
>>> print aString # print 不带引号的 Hello World!
>>> anotherString # 不是进行 print 操作,带有引号
'Python is cool!'
>>> s = str(range(4)) # 把一个列表转换成一个字符串
>>> s
'[0, 1, 2, 3]'
常用的内建函数:cmp(),len(), max(), min()
raw_input()
sort()和reverse():正排序和倒排序
>>> music_media
['compact disc', 45, '8-track tape', 'long playing record']
>>> music_media.sort()
>>> music_media
[45, '8-track tape', 'compact disc', 'long playing record']
>>> music_media.reverse()
>>> music_media
['long playing record', 'compact disc', '8-track tape', 45]
**在使用可变对象的方法如 sort(),extend()和 reverse()的时候要注意,这些操作会在列表中原地执行操作,也就是说现有的列表内容会被改变,但是没有返回值!
字符串方法有返回值
>>> 'leanna, silly girl!'.upper()
'LEANNA, SILLY GIRL!'
**不可变对象的方法是不能改变它们的值的,所以它们必须返回一个新的对象.
***元组和列表相比有一个很重要的区别,元组是一种不可变类型
元组
>>> aTuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)
>>> anotherTuple = (None, 'something to see here')
>>> print aTuple
(123, 'abc', 4.56, ['inner', 'tuple'], (7-9j))
>>> print anotherTuple
(None, 'something to see here')
>>> emptiestPossibleTuple = (None,)
>>> print emptiestPossibleTuple
(None,)
>>> tuple('bar')
('b', 'a', 'r')
访问元组中的值,切片[], [:], [::]
跟数字和字符串一样,元组也是不可变类型,就是说你不能更新或者改变元组的元素
通过现有字符串的片段再构造一个新字符串的方式解决的,对元组同样。
删除一个单独的元组元素是不可能的,可以通过切片,拼接后赋给一个新的元组。
元组可以在两端加入元素:
>>> c = tuple('D') + a
>>> c
('D', 'd', 'u', 'c', 'h')
>>>
>>> t = t + ('fifth', 'sixth')
>>> t
('third', 'fourth', 'fifth', 'sixth')
在中间加:
>>> a[:1] + ('hello',) + a[1:]
('d', 'hello', 'u', 'c', 'h')
>>>
核心笔记:列表 VS 元组
一个经常会被问到的问题是,"为什么我们要区分元组和列表变量?"这个问题也可以被表述为“我们真的需要两个相似的序列类型吗?”,一个原因是在有些情况下,使用其中的一种类型要优于使用另一种类型。
最好使用不可变类型变量的一个情况是,如果你在维护一些敏感的数据,并且需要把这些数据传递给一个并不了解的函数(或许是一个根本不是你写的 API),作为一个只负责一个软件某一部分的工程师,如果你确信你的数据不会被调用的函数篡改,你会觉得安全了许多。 一个需要可变类型参数的例子是,如果你在管理动态数据集合时。你需要先把它们创建出来,逐渐地或者不定期的添加它们,或者有时还要移除一些单个的元素。这是一个必须使用可变类型对象的典型例子。幸运的是,通过内建的 list()和 tuple()转换函数,你可以非常轻松的在两者之间进行转换.
list()和 tuple()函数允许你用一个列表来创建一个元组,反之亦然.如果你有一个元组变量,但你需要一个列表变量因为你要更新一下它的对象,这时 list()函数就是你最好的帮手.如果你有一个列表变量,并且想把它传递给一个函数,或许一个 API,而你又不想让任何人弄乱你的数据,这时 tuple()函数就非常有用。
python 序列操作
seq[ind] 获得下标为 ind 的元素
seq[ind1:ind2] 获得下标从 ind1 到 ind2 间的元素集合
seq * expr 序列重复 expr 次
seq1 + seq2 连接序列 seq1 和 seq2
obj in seq 判断 obj 元素是否包含在 seq 中
obj not in seq 判断 obj 元素是否不包含在 seq 中
1.连接操作符( + )
这个操作符允许我们把一个序列和另一个相同类型的序列做连接。语法如下:
sequence1 + sequence2
*对字符串来说,这个操作不如把所有的子字符串放到一个列表或可迭代对象中,然后调用一个 join方法来把所有的内容连接在一起节约内存;类似地,对列表来说,我们推荐读者用列表类型的extend()方法来把两个或者多个列表对象合并
2.切片操作符 ( [], [:], [::] )
sequence[index]
可以使用负索引,范围是 -1 到序列的负长度,-len(sequence), -len(sequence) <= index <= -1.正负索引的区别在于正索引以序列的开始为起点,负索引以序列的结束为起点.
因为 Python 是面向对象的,所以你可以像下面这样直接访问一个序列的元素(不用先把它
赋值给一个变量):
>>> print ('Faye', 'Leanna', 'Daylen')[1]
Leanna
sequence[starting_index:ending_index]
*sequence[0:3]==sequence[:3] (一端可省略)
sequence[starting_index:ending_index:step]
以下是几个例子:
>>> s = 'abcdefgh'
>>> s[::-1] # 可以视作"翻转"操作
'hgfedcba'
>>> s[::2] # 隔一个取一个的操作
'aceg'
*切片索引的语法要比简单的单一元素索引灵活的多。开始和结束素引值可以超过字符串的长度。
>>> ('Faye', 'Leanna', 'Daylen')[-100:100]
('Faye', 'Leanna', 'Daylen')
>>> for i in [None] + range(-1, -len(s), -1):
... print "s[:%s]" % (i)
... print s[:i]
...
s[:None]
abcdef
s[:-1]
abcde
s[:-2]
abcd
s[:-3]
abc
s[:-4]
ab
s[:-5]
a
**用 None 作为索引值,这样一来就可以满足你的需要,比如说,在你想用一个变量作为索引来从第一个到遍历最后一个元素的时候:
字符串
*Python 里面单引号和双引号的作用是相同的
>>> aString = 'Hello World!' # 使用单引号
>>> anotherString = "Python is cool!" # 使用双引号
>>> print aString # print 不带引号的 Hello World!
>>> anotherString # 不是进行 print 操作,带有引号
'Python is cool!'
>>> s = str(range(4)) # 把一个列表转换成一个字符串
>>> s
'[0, 1, 2, 3]'
常用的内建函数:cmp(),len(), max(), min()
raw_input()
sort()和reverse():正排序和倒排序
>>> music_media
['compact disc', 45, '8-track tape', 'long playing record']
>>> music_media.sort()
>>> music_media
[45, '8-track tape', 'compact disc', 'long playing record']
>>> music_media.reverse()
>>> music_media
['long playing record', 'compact disc', '8-track tape', 45]
**在使用可变对象的方法如 sort(),extend()和 reverse()的时候要注意,这些操作会在列表中原地执行操作,也就是说现有的列表内容会被改变,但是没有返回值!
字符串方法有返回值
>>> 'leanna, silly girl!'.upper()
'LEANNA, SILLY GIRL!'
**不可变对象的方法是不能改变它们的值的,所以它们必须返回一个新的对象.
***元组和列表相比有一个很重要的区别,元组是一种不可变类型
元组
>>> aTuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)
>>> anotherTuple = (None, 'something to see here')
>>> print aTuple
(123, 'abc', 4.56, ['inner', 'tuple'], (7-9j))
>>> print anotherTuple
(None, 'something to see here')
>>> emptiestPossibleTuple = (None,)
>>> print emptiestPossibleTuple
(None,)
>>> tuple('bar')
('b', 'a', 'r')
访问元组中的值,切片[], [:], [::]
跟数字和字符串一样,元组也是不可变类型,就是说你不能更新或者改变元组的元素
通过现有字符串的片段再构造一个新字符串的方式解决的,对元组同样。
删除一个单独的元组元素是不可能的,可以通过切片,拼接后赋给一个新的元组。
元组可以在两端加入元素:
>>> c = tuple('D') + a
>>> c
('D', 'd', 'u', 'c', 'h')
>>>
>>> t = t + ('fifth', 'sixth')
>>> t
('third', 'fourth', 'fifth', 'sixth')
在中间加:
>>> a[:1] + ('hello',) + a[1:]
('d', 'hello', 'u', 'c', 'h')
>>>
核心笔记:列表 VS 元组
一个经常会被问到的问题是,"为什么我们要区分元组和列表变量?"这个问题也可以被表述为“我们真的需要两个相似的序列类型吗?”,一个原因是在有些情况下,使用其中的一种类型要优于使用另一种类型。
最好使用不可变类型变量的一个情况是,如果你在维护一些敏感的数据,并且需要把这些数据传递给一个并不了解的函数(或许是一个根本不是你写的 API),作为一个只负责一个软件某一部分的工程师,如果你确信你的数据不会被调用的函数篡改,你会觉得安全了许多。 一个需要可变类型参数的例子是,如果你在管理动态数据集合时。你需要先把它们创建出来,逐渐地或者不定期的添加它们,或者有时还要移除一些单个的元素。这是一个必须使用可变类型对象的典型例子。幸运的是,通过内建的 list()和 tuple()转换函数,你可以非常轻松的在两者之间进行转换.
list()和 tuple()函数允许你用一个列表来创建一个元组,反之亦然.如果你有一个元组变量,但你需要一个列表变量因为你要更新一下它的对象,这时 list()函数就是你最好的帮手.如果你有一个列表变量,并且想把它传递给一个函数,或许一个 API,而你又不想让任何人弄乱你的数据,这时 tuple()函数就非常有用。
1 0
- pytho序列,字符串,元组---学习笔记
- Python学习笔记_元组、字符串、序列
- python学习笔记(第6章 序列:字符串,列表和元组)(一)
- Python入门笔记2 序列(字符串、元组、列表)
- python 学习笔记:字符串,列表,元组
- Python学习笔记 -- 序列(四)元组
- Python学习笔记——元组,序列
- 序列:字符串,列表,元组,字典
- python序列:字符串,元组和列表
- Python序列:字符串、列表和元组
- python 序列:字符串、列表和元组
- Python序列:字符串、元组、列表
- 6.序列:字符串、列表和元组
- python:序列:字符串,列表,元组
- <PY><core python programming笔记>C6 序列:字符串和列表和元组(一)
- <PY><core python programming笔记>C6 序列:字符串和列表和元组(二)
- <PY><core python programming笔记>C6 序列:字符串和列表和元组(三)
- Python 核心编程笔记_Chapter_6_Note_1 序列_字符串_列表_元组
- 多个Activity之间共享数据的5种方式以及 Application Context
- Red packet~二分
- ipc
- Codeforces Round #202 (Div. 1) A. Mafia 【二分】
- 2016多校联合第三场 HDU5760
- pytho序列,字符串,元组---学习笔记
- 树莓派上跑rplidar
- 统 一代码格式
- C语言数据类型
- 关于网上一些关于内存泄漏和内存溢出资料整理(一)
- Hibernate二级缓存配置
- 安装jupyter notebook
- oracle服务占用8080端口
- 对程序员来说,提高薪水最好的建议是什么?