python 列表与元组

列表

***特点:

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

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]: newlst
Out[6]: [5.4, 'hello', 2, 1.2, 3.5]

4.重复:*

In [13]: lst
Out[13]: [5.4, 'hello', 2]

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

In [15]: 

5.成员:in 运算符

In [7]: 2 in lst
Out[7]: True


In [8]: 3.5 in lst
Out[8]: False

6.长度:len() 函数

In [9]: len(lst)
Out[9]: 3

In [10]: len(newlst)
Out[10]: 5

7.循环: for

In [12]: for i in lst:
   ....:     print i
   ....:     
5.4
hello
2

In [13]: 

8.列表的方法:

In [15]: lst[0]=5   #重新赋值

In [16]: lst
Out[16]: [5, 'hello', 2]

In [17]: lst[0:2]=[3,6] #通过切片对子列表进行赋值

In [18]: lst
Out[18]: [3, 6, 2]

In [19]: lst
Out[19]: [3, 6, 2]

In [20]: lst.append("abc")      #append(内容)末尾追加一个新的元素

In [21]: lst
Out[21]: [3, 6, 2, 'abc']

In [22]: lst.extend(['nihao','beautiful'])  #extend([])追加一个新的列表

In [23]: lst
Out[23]: [3, 6, 2, 'abc', 'nihao', 'beautiful']

In [24]: lst.insert(3,'100')        #insert(位置,内容)在任意位置插入

In [25]: lst
Out[25]: [3, 6, 2, '100', 'abc', 'nihao', 'beautiful']

In [27]: lst.pop()  #默认删除最后一个,并且将其返回
Out[27]: 'beautiful'

In [28]: lst.pop(1) #pop(下标)指定删除
Out[28]: 6

In [29]: lst.remove('100')      #remove(内容)删除

In [30]: lst
Out[30]: [3, 2, 'abc', 'nihao']

In [31]: lst.sort()             #sort(排序

In [32]: lst
Out[32]: [2, 3, 'abc', 'nihao']

In [33]: lst.reverse()      #reverse()逆序

In [34]: lst
Out[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-8
nums=[]

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 
1
2
3
4
5
3.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=12
In [5]: sum([i for i in range(1,7) if 6%i==0])
Out[5]: 12


*返回x^2的值
#!/bin/env python
#coding:utf-8

print 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-8

student=[['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,True

In [9]: my_tuple
Out[9]: (1, 'a', 3.14, True)

In [10]: my_tuple=(1,'a',3.14,True)

In [11]: my_tuple
Out[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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值