###python中列表的知识###
1.列表的创建
#数组:存储同一种数据类型的集和 scores=[12,23,645]
#列表(打了激素的数组):可以存储任意数据类型
list = [1,1.2,True,‘hello’]
print(list,type(list))
#列表里面也是可以嵌套列表的
list2 = [1,2,3,[1,1.2,True,‘hello’]]
print(list2,type(list2))
2.列表的特性
service = [‘http’,‘ftp’,‘ssh’]
#索引
#正向索引
print(service[0])
#反向索引
print(service[-1])
#切片
print(service[::-1]) #列表的翻转
print(service[1:]) #除了第一个元素之后的其他元素
print(service[:-1]) #除了最后一个之前的其他元素
print(service[:5]) ##第5个元素包括第5个元素之前的元素
#重复
print(service * 3)
#连接
service1 =[‘mysql’,‘firewalld’]
print(service + service1)
#成员操作符
print(‘firewalld’ in service)
print(‘ftp’ in service)
print(‘mysql’ not in service)
#for 循环遍历
print(‘服务显示’.center(50,’*’))
for s in service:
# print不换行输出
print(s,end=’’)
3.列表元素的增加
service = [‘http’,‘ftp’,‘ssh’]
#append():追加 追加一个元素到列表中
service.append(‘firewalld’)
print(service)
#extend():拉神 追加多个元素到列表中
service.extend([‘myslq’,‘nfs’])
print(service)
#insert():在指定索引位置插入数据
service.insert(1,‘https’)
print(service)
4.列表元素的删除
>>> service = ['ftp','http','ftp','ssh']
>>> service.pop() ##删除最后一个元素
'ssh'
>>> service
['ftp', 'http', 'ftp']
>>> a = service.pop() ##删除的元素可以储存起来
>>> service
['ftp', 'http']
>>> a
'ftp'
>>> service.pop(0)
'ftp'
>>> service
['http']
>>> service.pop()
'http'
>>> service
[]
>>> service.pop()
#remove:删除列表元素
service = [‘ftp’,‘http’,‘ftp’,‘ssh’]
a = service.remove(‘ftp’)
print(service) ##删除的元素可以储存起来
print(a)
#从内存中删除一个数据
del service[1]
print(service)
5.列表元素的查看
service = [‘ftp’,‘http’,‘ftp’,‘ssh’,‘ssh’,‘mysql’,‘ssh’]
#查看元素在列表中出现的次数
print(service.count(‘ftp’))
#查看指定元素的索引值(可以指点索引范围)
print(service.index(‘ssh’)) ##如果有多个相同的元素只显示最近的一个
print(service.index(‘ssh’,0,5))
6.字符串的排序
import random
service = [‘ftp’,‘http’,‘ftp’,‘ssh’]
#排序:按照Ascii码进行排序的
service.sort(reverse=True)
print(service)
#对字符串排序 不区分大小写
>>> phones = ['Tom','alice','bob','Borry']
>>> phones.sort()
>>> phones
['Borry', 'Tom', 'alice', 'bob']
>>> phones.sort(key=str.lower)
>>> phones
['alice', 'bob', 'Borry', 'Tom']
>>> phones.sort(key=str.upper)
>>> phones
['alice', 'bob', 'Borry', 'Tom']
li =list(range(10))
random.shuffle(li)
print(li)
7.列表中元素的修改
service = [‘ftp’,‘http’,‘ftp’,‘ssh’,‘ssh’,‘mysql’,‘ssh’]
#通过索引值,重新赋值
service[0] = ‘samba’
print(service)
#通过切片赋值
service[:2] = [‘mysql’,‘nginx’]
print(service)
8.小练习
先不要看答案,自己先思考
1。假定有下面这样的列表:
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
输出结果为:‘I have fentiao, fendai, fensi and apple.’
names = ['fentiao', 'fendai', 'fensi', 'apple']
print('I have ' + ','.join(names[:-1]) + ' and ' + names[-1])
2.题目:输入某年某月某日(yyyy-MM-dd),判断这一天是这一年的第几天?
cal = input('请输入日期-yyyy-MM-dd:')
date = cal.split('-') #拆分日期
# print(date)
year = int(date[0])
month = int(date[1])
day = int(date[2])
arr = [0,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)):
arr[2] = 29
for i in range(1,len(arr)):
if month > i:
num += arr[i]
else:
num += day
break
print('天数:',num)
3.题目:输入三个整数x,y,z,请把这三个数由小到大输出
arr_str = input('请输入三个数字:\n')
arr = arr_str.split()
for i in range(len(arr)):
arr[i] = int(arr[i])
arr.sort()
print('输入的结果是:\n' + str(arr))