如下实例:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
创建空元组
tup1 = ();
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
元组可以使用下标索引来访问元组中的值,如下实例:
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
以上实例输出结果:
tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 以下修改元组元素操作是非法的。
# tup1[0] = 100;
# 创建一个新的元组
tup3 = tup1 + tup2;
print tup3;
以上实例输出结果:
(12, 34.56, 'abc', 'xyz')
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : "
print tup;
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式 | 结果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 计算元素个数 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 |
(‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 复制 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:
L = ('spam', 'Spam', 'SPAM!')
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | ‘SPAM!’ | 读取第三个元素 |
L[-2] | ‘Spam’ | 反向读取;读取倒数第二个元素 |
L[1:] | (‘Spam’, ‘SPAM!’) | 截取第一个到最后一个元素 |
In [3]: a
Out[3]: 'abcdef'
In [4]: a + 'f' //连接
Out[4]: 'abcdeff'
In [5]: a
Out[5]: 'abcdef'
In [6]: len(a) //长度
Out[6]: 6
In [7]: a
Out[7]: 'abcdef'
In [8]: a * 5 //循环输出5个a的值
Out[8]: 'abcdefabcdefabcdefabcdefabcdef'
In [9]: 'asd' * 5
Out[9]: 'asdasdasdasdasd'
In [10]: 'a' in a //字符a是否在a数组中
Out[10]: True
In [12]: 'abc' in a
Out[12]: True
In [13]: 'dd' in a
Out[13]: False
In [14]: 'dd' not in a
Out[14]: True
In [15]: max(a) //a数组的最大值
Out[15]: 'f'
In [16]: min(a) //a数组的最小值
Out[16]: 'a'
In [17]: a
Out[17]: 'abcdef'
In [18]: cmp(a,'abcdef') //数组a和abcdef比较大小 0 代表 “等于”
Out[18]: 0
In [20]: cmp('aaa','abcdef') -1 代表 "小于"
Out[20]: -1
In [21]: cmp(a+'g','abcde') 1 代表 “大于”
Out[21]: 1
In [22]: t1 = (1)
In [23]: type(t1) //不加 逗号 代表着 int型
Out[23]: int
In [24]: t2 = (1,)
In [25]: type(t2) //加了 逗号 代表 元祖
Out[25]: tuple
In [26]: t1 = (a, 'abc',(12,)) //这里面的 a 代表着 a 是一个变量
In [27]: type(t1)
Out[27]: tuple
In [29]: t1[1]
Out[29]: 'abc'
In [30]: t1[2] //元祖的取值
Out[30]: (12,)
In [31]: t1
Out[31]: ('abcdef', 'abc', (12,))
In [32]: first, second, third = t1 //把t1 赋值
In [33]: first
Out[33]: 'abcdef'
In [34]: third
Out[34]: (12,)
In [35]: t1. //查t1 有哪些方法
t1.count
t1.index
In [35]: t1.count('abc') //count:查看元祖中是否有这个值,有 即为“1” 没有即为"0"
Out[35]: 1
In [36]: t1.count('asd')
Out[36]: 0
In [37]: t1.count(a) //a 是个变量 a的值如上是 abcdef
Out[37]: 1
In [38]: t1.index('abc') //查看t1中 abc的索引位置
Out[38]: 1
In [39]: t1.index((12,))
Out[39]: 2
In [40]: t1.index('asd') //没有这个索引
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-40-925d75610493> in <module>()
----> 1 t1.index('asd')
ValueError: tuple.index(x): x not in tuple
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
以上实例输出结果:
list1[0]: physics
list2[1:5]: [2, 3, 4, 5]
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
#!/usr/bin/python
list = ['physics', 'chemistry', 1997, 2000];
print "Value available at index 2 : "
print list[2];
list[2] = 2001;
print "New value available at index 2 : "
print list[2];
注意:我们会在接下来的章节讨论append()方法的使用
以上实例输出结果:
Value available at index 2 :
1997
New value available at index 2 :
2001
可以使用 del 语句来删除列表的的元素,如下实例:
#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000];
print list1;
del list1[2];
print "After deleting value at index 2 : "
print list1;
以上实例输出结果:
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]
注意:我们会在接下来的章节讨论remove()方法的使用
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。 如下所示:
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在与list中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
Python 的列表截取实例如下:
>>> L = ['Google', 'Runoob', 'Taobao']
>>> L[2]
'Taobao'
>>> L[-2]
'Runoob'
>>> L[1:]
['Runoob', 'Taobao']
>>>
Python包含以下函数:
1 cmp(list1, list2) 比较两个列表的元素
2 len(list) 列表元素个数
3 max(list) 返回列表元素最大值
4 min(list) 返回列表元素最小值
5 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(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj) 移除 列表中某个值的第一个匹配项
8 list.reverse() 反向 列表中元素
9 list.sort([func]) 对原列表进行 排序
In [4]: list1 = [a,'asd',('as',),['hello','python']]
In [5]: type(list1)
Out[5]: list
In [7]: list1[2]
Out[7]: ('as',)
In [8]: len(list1)
Out[8]: 4
In [9]: list1[0]
Out[9]: 'abc'
In [10]: list1[0] = 'b' //列表可以更改表内的值,元祖不可以修改
In [11]: list1
Out[11]: ['b', 'asd', ('as',), ['hello', 'python']]
In [16]: list2 = ['qwe']
In [17]: list2
Out[17]: ['qwe']
In [18]: list1 + list2
Out[18]: ['b', 'asd', ('as',), ['hello', 'python'], 'qwe']
In [19]: list2.append('linux') //在列表的最后面添加一个元素
In [20]: list2
Out[20]: ['qwe', 'linux']
In [21]: (list1 + list2) * 2 //序列出现的次数
Out[21]:
['b',
'asd',
('as',),
['hello', 'python'],
'qwe',
'linux',
'b',
'asd',
('as',),
['hello', 'python'],
'qwe',
'linux']
In [25]: del list1[2] //知道下标的情况下,使用下标去删除
In [26]: list1
Out[26]: ['b', 'asd', ['hello', 'python']]
In [36]: list2
Out[36]: ['qwe', 'linux']
In [37]: del list2 //删除一个列表
In [38]: list2
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-38-db9b7629a516> in <module>()
----> 1 list2
NameError: name 'list2' is not defined
In [28]: list1. //列表的方法
list1.append list1.index list1.remove
list1.count list1.insert list1.reverse
list1.extend list1.pop list1.sort
In [32]: list1.append('asd')
In [33]: list1
Out[33]: ['b', 'asd', ['hello', 'python'], 'asd']
In [34]: list1.remove('asd') //移除列表中匹配的第一个asd 字符串
In [35]: list1
Out[35]: ['b', ['hello', 'python'], 'asd']
In [39]: list1
Out[39]: ['b', ['hello', 'python'], 'asd']
In [40]: 'a' in list1 //字符串 a 是否在list1 列表中
Out[40]: False
In [41]: 'a' not in list1
Out[41]: True
In [42]: list1
Out[42]: ['b', ['hello', 'python'], 'asd']
In [44]: list1.insert(2,'aaa') //在索引2的前面插入一个aaa的字符串
In [45]: list1
Out[45]: ['b', ['hello', 'python'], 'aaa', 'asd']
In [46]: list2 = ['qqq']
In [47]: list1.insert(3,list2) //当然也可以插入一个列表
In [53]: list1
Out[53]: ['b', ['hello', 'python'], [], 'aaa', ['qqq'], 'asd']
In [54]: list1[2].append('fff') //list1中索引为2增加一个值
In [55]: list1
Out[55]: ['b', ['hello', 'python'], ['fff'], 'aaa', ['qqq'], 'asd']
In [56]: list1.sort() //对list1 排序
In [57]: list1
Out[57]: [['fff'], ['hello', 'python'], ['qqq'], 'aaa', 'asd', 'b']
In [59]: list1.reverse() //对list1 反转
In [60]: list1
Out[60]: ['b', 'asd', 'aaa', ['qqq'], ['hello', 'python'], ['fff']]
In [61]: list1.pop(3) //把索引为 3 的值删除并输出
Out[61]: ['qqq']
In [62]: list1
Out[62]: ['b', 'asd', 'aaa', ['hello', 'python'], ['fff']]
In [63]: list1.pop() //括号内不指定,即为删除最后一个值
Out[63]: ['fff']
In [65]: list1
Out[65]: ['b', 'asd', 'aaa', ['hello', 'python']]
In [70]: range(5)
Out[70]: [0, 1, 2, 3, 4]
In [71]: list1.extend(range(5)) //迭代: 把range产生的值 扩展到list1中
In [72]: list1
Out[72]: ['b', 'asd', 'aaa', ['hello', 'python'], 0, 1, 2, 3, 4]
In [82]: list1.extend('123') //把1 2 3 分别加入到list1中
In [83]: list1
Out[83]:
['b',
'asd',
'aaa',
['hello', 'python'],
0,
1,
4,
'a',
'b',
'c',
'd',
'e',
'1',
'2',
'3']
In [84]: list1.extend((11,'abb')) //当然也支持 元祖
In [85]: list1
Out[85]:
['b',
'asd',
'aaa',
['hello', 'python'],
0,
1,
4,
'a',
'b',
'c',
'd',
'e',
'1',
'2',
'3',
11,
'abb']
# 现有列表
# list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
# list2 = ['e', 'f', 'g']
# 要求对其做以下操作:
# 1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
# 2. 对list3 做一下几部操作
# 1)删除特殊符号
# 2)统计 3 在list3中出现的次数
# 3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
# 4)对list3排序
# 5)在末尾追加'd',并把list2追加到list3
# 3. 现有两个变量
# a = ('h',)
# b = ('h')
# 1)将a和b分别追加到上一题的list3中,观察有什么区别
# 2)将1生成的list3转换成元组(扩展:自己搜索方法)
# 3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引
—答案—
#!/usr/bin/python2
# -*- coding: utf-8 -*-
# @Time : 12/21/2017 2:01 PM
# @Author : Zhdya
# @Email : [email protected]
# @File : test_1221.py
# @Software: PyCharm
# 现有列表
# list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
# list2 = ['e', 'f', 'g']
list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']
list2 = ['e', 'f', 'g']
# 要求对其做以下操作:
# 1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
list3 = list1[1:-1]
print list3
# 2. 对list3 做一下几部操作
# 1)删除特殊符号
del list3[4]
print list3
# 2)统计 3 在list3中出现的次数
print list3.count(3)
# 3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
list3 = list3[0:5:2]
print list3
# 4)对list3排序
list3.sort()
print list3
# 5)在末尾追加'd',并把list2追加到list3
# list2 = ['e', 'f', 'g']
list3.append('d')
print list3
list3.append(list2)
print list3
# 3. 现有两个变量
a = ('h',)
b = ('h')
# 1)将a和b分别追加到上一题的list3中,观察有什么区别
list3.append(a)
list3.append(b)
print list3
# 2)将1生成的list3转换成元组(扩展:自己搜索方法)
tup1 = (list3,)
print tup1
# 3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引
print tuple(list3).index(a)