python 列表与元组

来源:互联网 发布:suse linux 10 下载 编辑:程序博客网 时间:2024/05/21 17:56

列表

***特点:使用 [] 生成,生成元素之间用','隔开可以包含多种类型的对象;字符串只能是字符内容是可变的;字符串是不可变的

1.索引:[]运算符

In [1]: lst=[5.4,'hello',2]In [2]: lst[0]Out[2]: 5.4

2.切片:[:]

In [3]: lst[1:2]Out[3]: ['hello']In [4]: lst[1:3]Out[4]: ['hello', 2]

3.拼接:+

In [5]: newlst=lst+[1.2,3.5]In [6]: newlstOut[6]: [5.4, 'hello', 2, 1.2, 3.5]

4.重复:*

In [13]: lstOut[13]: [5.4, 'hello', 2]In [14]: lst*3Out[14]: [5.4, 'hello', 2, 5.4, 'hello', 2, 5.4, 'hello', 2]In [15]: 

5.成员:in 运算符

In [7]: 2 in lstOut[7]: TrueIn [8]: 3.5 in lstOut[8]: False

6.长度:len() 函数

In [9]: len(lst)Out[9]: 3In [10]: len(newlst)Out[10]: 5

7.循环: for

In [12]: for i in lst:   ....:     print i   ....:     5.4hello2In [13]: 

8.列表的方法:

In [15]: lst[0]=5   #重新赋值In [16]: lstOut[16]: [5, 'hello', 2]In [17]: lst[0:2]=[3,6] #通过切片对子列表进行赋值In [18]: lstOut[18]: [3, 6, 2]In [19]: lstOut[19]: [3, 6, 2]In [20]: lst.append("abc")      #append(内容)末尾追加一个新的元素In [21]: lstOut[21]: [3, 6, 2, 'abc']In [22]: lst.extend(['nihao','beautiful'])  #extend([])追加一个新的列表In [23]: lstOut[23]: [3, 6, 2, 'abc', 'nihao', 'beautiful']In [24]: lst.insert(3,'100')        #insert(位置,内容)在任意位置插入In [25]: lstOut[25]: [3, 6, 2, '100', 'abc', 'nihao', 'beautiful']In [27]: lst.pop()  #默认删除最后一个,并且将其返回Out[27]: 'beautiful'In [28]: lst.pop(1) #pop(下标)指定删除Out[28]: 6In [29]: lst.remove('100')      #remove(内容)删除In [30]: lstOut[30]: [3, 2, 'abc', 'nihao']In [31]: lst.sort()             #sort(排序In [32]: lstOut[32]: [2, 3, 'abc', 'nihao']In [33]: lst.reverse()      #reverse()逆序In [34]: lstOut[34]: ['nihao', 'abc', 3, 2]In [35]: lst.lst.append   lst.extend   lst.insert   lst.remove   lst.sort     lst.count    lst.index    lst.pop      lst.reverse  In [35]: 

示例:
求若干元素的平均数:

!!代码块#!/bin/env python#coding:utf-8nums=[]for i in range(5):        nums.append(float(raw_input()))avg = sum(nums)/len(nums)#sum()求和#max()求最大的数#min()求最小的数print avg>>>>>>>>>>>>>>>>!!运行结果[root@foundation66 python]# python numbers.py 123453.0[root@foundation66 python]#

9.列表解析

(1)列表推倒实现求平均分In [1]: student=[['zhang',84],['wang',98],['li',76]]In [7]: sum([x[1] for x in student])/len(student)Out[7]: 862)使用列表解析对所输入的数字i的因数求和    若输入6时,输出结果应为:(1+2+3+6=12In [5]: sum([i for i in range(1,7) if 6%i==0])Out[5]: 12*返回x^2的值#!/bin/env python#coding:utf-8print sum([i for i in range(1,7) if 6%i==0])'''列表解析:表示方法:[表达式 for 变量 in 列表 if 条件]例如:如生成值为{x^2 : x属于{1..9}}lst=[]for x in range(1,9):        lst.append(x**2)print lst用列表解析优化后:lst = [x**2 for x in range(1,9)]#对于1-8的数字求他的平方'''*求平均分并且排序#!/bin/env python#coding:utf-8student=[['zhang',84],['wang',98],['li',76]]#s=0#for chengji in student:#       s += chengji[1]##print float(s)/len(student)print float(sum([x[1] for x in student]))/len(student)#按照成绩从达到小排序#def f(a):#       return a[1]#student.sort(reverse=True)student.sort(key=lambda x:x[1],reverse=True)#注:匿名函数不能直接调用,调用时需要给其赋值#lambda 参数:返回值print student#如果reverse=True则按照倒叙(从达到小)排列

元组

——>即不可变的列表,一旦生成,内容无法改变
1.除了可改变列表内容的方法之外,其他的方法均可适用于元组
2.因此,索引、切片、len()、print等均可用
3.但是,append、extend、del等不可用
4.为什么需要元组—保证列表内容不被修改

*定义方法

In [8]: my_tuple=1,'a',3.14,TrueIn [9]: my_tupleOut[9]: (1, 'a', 3.14, True)In [10]: my_tuple=(1,'a',3.14,True)In [11]: my_tupleOut[11]: (1, 'a', 3.14, True)In [12]: type(my_tuple)     #type()查看类型Out[12]: tuple

*用’@’进行分割
In [14]: name,domain = ‘car@edu.cn’.split(‘@’)

In [15]: name
Out[15]: ‘car’

In [16]: domain
Out[16]: ‘edu.cn’

0 0