Python 基础第四天

主要内容:

1.for 循环补充: for .... else....  for ...range..的使用

2.list(列表和列表的常用方法)

3.list的嵌套

4.元组(tuple)

 

1.for (有限)循环的补充

1)for ... else..的用法与while...else类似

循环内有break打断的,不执行外面的else,for循环内正常执行完毕的,执行else

li = [1,2,3,['alex','wusir','老男孩'],4]

for i in li:

    print(i)

    break

else:

  print(666)

使用break 不会打印 666不使用,最后打印666

2) range 可以把range看做是一个数字的列表,范围是自己定义的.

正序范式:
for i in range():

倒序的各种常用方式:
简便方法:
#reversed 方法表示倒序,不使用range格式.
#如果是int格式的数字,报错:TypeError: 'int' object is not reversible

#先构建一个列表,然后对列表中的元素进行反转 (只针对列表类型数据使用)
a = range(int)
for x in reversed(a):  

   print (x)  

通用方法:
#(len(a)-1)表示起始位置,就是倒序的第一位,第二位的-1表示结尾位,最后一位-1表示访问步长.取值规则:顾头不顾尾.
#即开头值能够取到,结尾要超过一位.
for x in range(len(a)-1,-1,-1): 

print (x) 



例:
列出1---100的数
for i in range(100):
  print(i)
for i in range(99,-1,-1)
  print(i)

例:
打印列表内每个元素的索引
方法1:
li = [2,3,'alex',4,5]
for i in li:
  print(li.index(i))

方法二:
li = [2,3,'alex',4,5]
for i in range(0,len(li)):
  print(i)


列表和列表的常用用法
li = ['alex', 123, True, (1, 2, 3, 'wusir'), [1, 2, 3, '小明',], {'name':'alex'}]
列表用[]表示,类型为:type(li) == list
列表的基本用法与str类似
可以分为: 索引,切片和步长
列表索引:
print(li[0])
print(li[3])
print(li[0:4])
print(li[:4])

list的增删改查
li = [1,'a','b','a',2,3,'老男孩']
*增加
1.append
li.append('alex') #增加字符串
li.append([1,2,3])#增加列表
例题:

name_list = ['杰哥' ,'民歌','花心哥','狗友','芳芳']
while True:
name = input('请输入新员工姓名:Q/q')
if name.upper() == 'Q':break
else:
name_list.append(name)
print('已成功添加新员工%s' % name)
print(name_list)


2.插入 insert()
li.insert(2,"小三") #前面代表索引位置,后面为插入的数据

3.添加可迭代对象,把内容逐一添加到最后一行
extend()
li.extend([1,2,3])
结果:['a', 'b', '男孩', 'girl', 3, 2, 'alex', 1, 2, 3]

*删除
1.pop() #默认删除最后一个
li.pop(1) #内容为索引,可以删除索引的内容
s = li.pop(1) #此删除是唯一一个有返回值的
返回值为删除的元素

2.remove #根据元素删除,所填的内容是元素名称,如果列表内有多个相同元素,只删除一个
li.remove('a')

3.clear #清空列表

4.del li #删除整个列表
del li[:3] #切片删除
del li[:3:2] #步长删除

*改
1.使用索引方式更改
作为一个整体将等号右边的内容放到左面索引的位置,并替换掉旧内容.
li[2] = 'alex'
li[1] = [1,2,3]

2.使用切片方式更改
作为一个整体将等号右边的内容放到左面索引的位置,并替换掉旧内容.
li[:2] = 'alex'
li[:2] = [1,12,3]

*查
1.使用print 打印出列表的索引,切片,步长等值
 print(li[2])
print(li[:3])
print(li[1:3:2])
2.使用for循环遍历列表内容
for i in li:
  print(i)

其他操作
*sort #从大到小,正向排序
sort(reverse=True) #从大到小,反向排序

注意:

l1 = ['a','B','r','E','j','大',"小","黑",'W','w','c']
1.排序的列表中值是int 和 str ,不能混合
2.如l1 这种混合字符串排序为:大写---小写---中文
3.大小写字母可以按照英文字母顺序排列,中文则无法排序,会显示原顺序
4.如果想给更改后的列表赋值,应该注意
s = l1.sort()
print(s)
->>None
正确操作:
l1.sort()
s = l1
print(s)

*reverse() #反转操作, 列表内的元素从尾到头重新排列
  li.reverse()

*join() #将列表转换成字符串 .连接可迭代对象中的每个元素,形成一个新的字符串

  li = ['wusir','taibai','alex']
  print(' '.join(li))

返回的结果
 'wusir taibai alex'

*len() #统计列表长度即元素个数

*count() #统计单个元素个数

  li.count('wusir')

*index() #通过元素找索引,可以切片

*列表的嵌套
l1 = [1,2,['alex','b',c],'e']
li = [1,2,'alex',['100','wusir',99,[]],22]
例:将wusir变成全部大写的wusir 放到原处
li[3][1] = l2[1].upper()
print(li)
li[3][1] = li[3][1].upper()
print(li)

元组
*元组是不可更改的只读列表,用()表示.元组的特性:儿子不能改,孙子可能改
tu = (1,2,'alex','oldboy')
print(tu[:2])
print(tu[2])
元 组同样 有索引,切片




































posted @ 2018-03-21 19:39  tom2ling  阅读(225)  评论(0编辑  收藏  举报