序列是Python中最基本的数据结构。
序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
列表里可以储存不同的数据类型
li = [1,1.5,'hello',True]
print(li)
print(type(li))
列表中可以进行
嵌套
li1 = [1,1.5,'hello',True,[1,1,2,3,5]]
print(li1)
print(type(li1))
索引
serveric = ['http','ssh','ftp']
print(serveric[0]) #service第一个字符串
print(serveric[-1]) #service倒数第一个字符串
切片
serveric = ['http','ssh','ftp']
print(serveric[1:]) #从第一个开始正序,排列两个
print(serveric[:-1]) #从第二个开始倒序,排列两个
print(serveric[::-1]) #全部倒序
重复
serveric = ['http','ssh','ftp']
print(serveric * 3) #全部按已有顺序输出三次
连接
serveric = ['http','ssh','ftp']
serveric1 = ['nfs','samba']
print(serveric + serveric1) #输出顺序serveric + serveric1
列表里的嵌套列表
serveric2 = [['http','80'],['ssh','22'],['ftp','21']]
print (serveric2)
索引
print(serveric2[0][1])
切片
print(serveric2[:][1]) #正数第二个
print(serveric2[::-1][0]) #倒数第一个
成员操作符
serveric1 = ['nfs','samba']
serveric = ['http','ssh','ftp']
print('nfs' in serveric) #serveric中没有nfs
print('nfs' in serveric1)
for循环遍历
serveric = ['http','ssh','ftp']
for i in serveric:
print(i) #按次序输出service
练习
1
#输入月份判断季节
month = int(input('Month: '))
if month in [3,4,5]: #列表在这里代表指定的相应值
print('春季')
elif month in [6,7,8]:
print('夏季')
elif month in [9,10,11]:
print('秋季')
elif month in [12,1,2]:
print('冬季')
else:
print('请输入正确值')
2
#输入年月日,判断经过的天数
time = input('请输入日期 YYYY-MM-DD: ')
date = time.split('-') #以间隔符‘-’分开。组成列表date
year = int(date[0]) #year是第一个字符串
mon = int(date[1])
day = int(date[2])
li = [31,28,31,30,31,30,31,31,30,31,30,31]
num = 0
if (year % 4 == 0 ) and (year % 100 != 0) or (year % 400 == 0):
li[1] = 29
for i in range(12): #指定月份1~12
if mon > i + 1: #这里要算天数,需加上已过月份天数在,加已过本月天数
#如输入(mon)7,要1~6月份天数相加,再加上本月已经过去的天数
#mon = 7
#mon > i + 1
#i < 6
num += li[i]
else:
num += day #这里指mon为最小的1,不符合上式
break
print('这一天是%d年的第%d天'%(year,num))
添加列表中的项
serveric = ['http','ssh','ftp']
1
print(serveric + ['firewall'])
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190719100525890.png)
2 append:追加,追加一个元素到列表中
serveric.append('firewall')
print(serveric)
##
##
3.extend:拉伸,追加多个元素到列表中
serveric.extend(['mysql','firewall'])
print(serveric)
##
##
4.insert:在指定索引位置插入元素
serveric.insert(1,'samba') #在第二个位置插入元素
print(serveric)
##
列表的删除
serveric = ['http','ssh','ftp']
remove:删除指定元素
a = serveric.remove('ssh')
print(serveric)
del
print(serveric)
del serveric
print(serveric)
替换
serveric = ['http','ssh','ftp']
serveric[0] = 'mysql' #将第一个换为mysql
print(serveric)
print(serveric[:2]) #输出正序两个字符串
serveric[:2] = ['samba','iscis'] #正序输出替换前两个字符串
print(serveric)
列表的查看
serveric = ['http','ssh','ftp','ssh']
查看出现的次数
print(serveric.count('ssh'))
查看指定元素的索引值
print(serveric.index('ssh'))
print(serveric.index('ssh',1,3)) #第二、四位置的ssh索引
排序
import random
names = ['alice','Bob','coco','Harry']
print(names.sort())
li = list(range(10))
print(li)
#将列表打乱
random.shuffle(li)
print(li)
列表生成式
s = '51 5000 10000' #给定数值
li = []
for item in s.split(): #以空格为间隔符,以item代表其中的项
li.append(int(item)) #加入列表
print(li)
k,a,b = li #令li中的各个项分别为k a b
print(k,a,b) #输出k a b
li = [int(item) for item in s.split()] #也可直接将值输入
print(li)
#枚举:返回索引值(可以理解为下标号,从0开始)和对应的value值
for i,v in enumerate('westos'):
print(i,v)
zip(将两组值一一对应)
s1 = 'abc'
s2 = '456'
for i in zip(s1,s2):
print(i)
for i in zip(s1,s2):
print(''.join(i))