Python_20180424

#!/usr/bin/env python
# encoding: utf-8
#索引:对于一个有序序列,可以通过索引的方法来访问对应位置的值,字符串便是
#一个有序序列的例子,Python使用[]来对有序序列进行索引。
s = "hello world"
print(s[0])
#Python中索引是从0开始的,所以索引0对应与序列的第1个元素,为了得到第五个元素
#需要使用索引值4.

#索引除了正向索引,Python还引入了负索引值的用法,即从后向前开始计数,例如:
#索引-2 表示倒数第二个元素:
print(s[5:-1])

#分片是用来从序列中提取出想要的子序列,其用法为:var[lower:upper:step]
#其范围包括lower,但不包括upper,step 表示取值间隔大小,如果没有默认为1.

s = 'shi dong'
print(s[1:3])#分片中包含的元素的个数为3-1=2

#每隔两个元素去一个值:
print(s[::2])
#当step的值为负时,省略lower意味着从结尾开始分片,省略upper意味着一直分片到开头
#从结尾开始向前分片
print(s[::-1])
#当给订的upper超出字符串的长度(注意:因为不包含upper,所以可以等于)时,Python并
#不会报错,不过只会计算到结尾。
print(s[:100])

#!/usr/bin/env python
# encoding: utf-8
#列表用已对[]生成,中间的元素用,隔开,其中的元素不需要是同一类型,同时
#列表的长度也不固定。
l = [1,2.0,'hello']
print(l)
#空列表可以用[]或者list()生成:
empty_list = []
print(empty_list)
#列表操作:与字符串类似,列表也支持以下的操作:
#长度:用len查看列表长度:
print(len(l))
#加法和乘法:列表加法,相当于将两个列表按顺序连接:
a = [1,2,3]
b = [3,'hello']
print(a + b)
#列表与整数相乘,相当于 将列表重复相加:
print(a*2**3)
#列表与索引分片
# s = "hello world"#字符串是不可以通过索引或者分片来修改的
# s[0] = 'H'
# print(s)

#但是列表是可以通过索引分片来进行更改的
a = [10,11,12,13,14]
a[0]=100
print(a)
#这种赋值也适用于分片,例如,将列表的第2,3两个元素换掉:
a[1:3] = [299,888]
print(a)
#这样就意味着可以通过这些分片操作来删除一些列表中的元素
a[1:3] = []
print(a)

#python提供了删除列表中元素的方法'del'
a = [1002,'a','b','c']
del a[0]#删除某个元素
print(a)
#删除第二到最后一个元素
a = [1002,'a','b','c']
del a[1:]
print(a)

#删除间隔的元素:
a = [1002,'a','b','c']
del a[::2]
print(a)

#用in来看某个元素是否在某个序列(不仅仅是列表)中,用not in 来判断是否不
#在某个序列中。
a = [10,11,12,13,14,15]
print(10 in a)
print(10 not in a)
print(19 not in a)

#列表中可以包含各种对象,甚至可以包含列表:
a = [10,'eleven',[12,13]]
print(a[2])
print(a[2][0])

#列表中某个元素的个数count
#1、count(ob)返回列表中元素ob出现的次数。
a = [11,12,13,12,11]
print(a.count(11))

#列出列表中某个元素的位置index
#1、index(ob)返回列表中元素ob第一次出现的索引位置,如果ob不在l中会报错。
a = [11,12,13,12,11]
print(a.index(12))
#如果不存在元素,那么则会报错
#print(a.index(18))
#ValueError: 18 is not in list

#改变列表的方法
#想列表添加单个元素
#1、append(ob)将元素ob添加到列表l的最后。
a = [10,11,12]
a.append(99)
print(a)
#append每次只添加一个元素,并不会因为这个元素是序列而将其展开:
a.append([33,55,434])
print(a)
#向列表添加序列
#1、extend(lst)将序列lst的元素一次添加到列表l的最后,作用相当于l += lst
a.extend([22,44,11,55,77,44,90])
print(a)

#插入元素
#1、insert(idx,ob)在idex处插入ob,之后的元素依次后移。
a = [10,222,11,33,4,5,6,33]
a.insert(2,100000
)print(a)
#移除元素,remove 会移除第一个找到的元素
a = [10,11,12,13,11]
a.remove(11)
print(a)
print(a.count(11))
#弹出元素,1、pop(idx)会将索引idx处的元素删除,并返回这个元素。
a = [10,11,12,13,14,11]
print(a.pop(3))
print(a)
#排序
#1、sort()会将列表中的元素按照一定的规则排序:
a = [10,1,33,22,44,11,13]
a.sort()
print(a)
a = [10,1,33,22,44,11,13]
b = sorted(a)
print(a)
print(b)
#列表反向
#1、reverse()会将列表中的元素从后向前排列。
a = [1,2,3,4,5,6]
a.reverse()
print(a)
#如果不想改变原来列表中的值,可以使用这样的方法:
a = [1,2,3,4,5,6]
b = a[::-1]
print(a)
print(b)

#可变和不可变类型
#列表是可变的(Mutable)
a = [1,2,3,4]
#通过索引改变:
a[1] = 9
print(a)

#通过方法改变:
a = [1,2,3,4]
a.insert(3,5)
print(a)
a.sort()
print(a)

#字符串是不可变的(immutable)
s = "hello world"
print(s)

a = s.replace('world','shidong')
print(s)
print(a)

#元组
#基本操作:与列表相似,元组tuple也是个有序序列,但是元组是不可变的,用()生成
t = (10,11,12,13,14)
print(t)
#可以索引可以切片:但是元组是不可变的:
print(t[0])
print(t[1:3])

a = (10,)#容易和表达式混淆,所以元组后边加上逗号
print(type(a))

#将列表转换为元组:
a = [10,11,12,13,14]
b = tuple(a)
print(b)
print(a)
 
posted @ 2018-04-24 18:25  Just---Do---It  阅读(81)  评论(0编辑  收藏  举报