列表
标志
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
基本操作
1)创建列表
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
list1 = [‘Google’, ‘Runoob’, 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = [“a”, “b”, “c”, “d”];
2)更新列表
a. 对列表中某项进行修改更新
可通过切片/索引的方式对列表中的某项进行重新赋值,达到更新列表某项值的效果,如下例子,实现将现存列表中的1997修改为2001。
#!/usr/bin/python3
list = [‘Google’, ‘Runoob’, 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
b.增加列表项
可通过append()的方式来增加列表项,如下例子,实现在现存列表中增加一项,值为2002
#!/usr/bin/python3
list = [‘Google’, ‘Runoob’, 1997, 2000]
print ("更新前的列表: ", list)
list.append(2001)
print ("更新后的列表: ", list)
3)删除列表项
a. pop()
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
list.pop([index=-1])
obj – 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
注意使用pop后,会返回指定索引项的值,并将其从列表中删除。
#!/usr/bin/python3
#coding=utf-8
list1 = [‘Google’, ‘Runoob’, ‘Taobao’]
list_pop=list1.pop(1)
print “删除的项为 :”, list_pop
print "列表现在为 : ", list1
上述的输出为
删除的项为 : Runoob
列表现在为 : [‘Google’, ‘Taobao’]
b. del()
del直接删除列表中的指定项,无返回值。
#!/usr/bin/python3
list = [‘Google’, ‘Runoob’, 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
c. remove()
remove() 函数用于移除列表中某个值的第一个匹配项。
remove()方法语法:
list.remove(obj)
注意:remove的参数是列表中具体的值,而非索引。且remove与pop不同,是没有返回值的。
#!/usr/bin/python
aList = [123, ‘xyz’, ‘zara’, ‘abc’, ‘xyz’];
aList.remove(‘xyz’);
print "List : ", aList;
aList.remove(‘abc’);
print "List : ", aList;
上述例子的回显为:
List : [123, ‘zara’, ‘abc’, ‘xyz’]
List : [123, ‘zara’, ‘xyz’]
4)列表拷贝
copy() 函数用于复制列表
以下实例展示了 copy()函数的使用方法:
#!/usr/bin/python3
list1 = [‘Google’, ‘Runoob’, ‘Taobao’, ‘Baidu’]
list2 = list1.copy()
print ("list2 列表: ", list2)
以上实例输出结果如下:
list2 列表: [‘Google’, ‘Runoob’, ‘Taobao’, ‘Baidu’]
注意:使用=直接赋值,是引用赋值,更改一个,另一个同样会变。copy() 则顾名思义,复制一个副本,原值和新复制的变量互不影响
列表相关方法
列表包含以下函数和方法:
序号 | 函数 |
---|---|
1 | len(list),列表元素个数 |
2 | max(list),返回列表元素最大值 |
3 | min(list),返回列表元素最小值 |
4 | list(seq),将元组转换为列表 |
序号 | 方法 |
---|---|
1 | list.append(obj),在列表末尾添加新的对象 |
2 | list.count(obj),统计某个元素在列表中出现的次数 |
3 | list.extend(seq),在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj),从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj),将对象插入列表 |
6 | list.pop([index=-1]),移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj),移除列表中某个值的第一个匹配项 |
8 | list.reverse(),反向列表中元素 |
9 | list.sort( key=None, reverse=False),对原列表进行排序 |
10 | list.clear(),清空列表 |
11 | list.copy(),复制列表 |
元组
标志
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
基本操作
1)元组的创建
当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,代码如下:
t = (1, 2)
t
(1, 2)
如果要定义一个空的tuple,可以写成(),代码如下:
t = ()
t
()
但是,要定义一个只有1个元素的tuple,代码如下:
t = (1)
t
1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号 ,来消除歧义,代码如下:
t = (1,)
t
(1,)
2)元组的不可变性
tuple和list非常类似,但是tuple一旦初始化就不能修改。它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
注意:tuple元素不可变有一种特殊情况,当元素是可变对象时。对象内部属性是可以修改的!tuple的不可变限制只是在一个纬度上:元素的类型。实现理解,tuple的元素所保存的内容(数值或内存地址)是不允许修改的,但地址映射的对象自身是可以修改的。
string字符串
定义及基本操作
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
var1 = ‘Hello World!’
var2 = “Python Runoob”
1)字符串读取方式
Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python访问子字符串,可以使用方括号来截取字符串,如下实例:
#!/usr/bin/python
var1 = ‘Hello World!’
var2 = “Python Runoob”
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
以上实例执行结果:
var1[0]: H
var2[1:5]: ytho
2)字符串的基本运算操作
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
字符串相关方法
在Python3中,所有的字符串都是Unicode字符串。
Python 的字符串常用内建函数如下:
字符串格式化问题
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
#!/usr/bin/python3
print (“我叫 %s 今年 %d 岁!” % (‘小明’, 10))
以上实例输出结果:
我叫 小明 今年 10 岁!
python字符串格式化符号:
格式化操作符辅助指令:
可通过格式化操作符完成进制转换:
num=10
print(‘十六进制:%#x’ % num) #使用%x将十进制num格式化为十六进制
十六进制:0xa
print(‘二进制:’, bin(num)) #使用bin将十进制num格式化为二进制
二进制: 0b1010
print(‘八进制:%#o’ % num) #使用%o将十进制num格式化为八进制
八进制:0o12
上面使用格式化符号进行进制转换中,多加入了一个#号,目的是在转换结果头部显示当前进制类型,如不需要,可将#号去除,如下
print(‘八进制:%o’ % num)
八进制:12
print(‘十六进制:%x’ % num)
十六进制:a