Python——列表、元组和集合的相关特性及用法

一、列表:

1.创建列表
#列表里:可以储存不同的数据类型
li = [1,1.5,'hello',True]
print(li)
print(type(li))

在这里插入图片描述

#列表里也可以嵌套列表(列表也是一种数据类型)
yy = [1,1.5,'hello',True,[1,2,3,4,5]]
print(yy)
print(type(yy))

在这里插入图片描述

2.列表的特性
service = ['http','ssh','ftp']
##索引
print(service[0])				##输出第一个字符串
print(service[-1])				##输出最后一个字符串

在这里插入图片描述

service = ['http','ssh','ftp']
##切片
print(service[1:])				##输出第一个字符之外的其他字符
print(service[:-1])				##输出最后一个字符之外的其他字符
print(service[::-1])			##倒序输出字符

在这里插入图片描述

service = ['http','ssh','ftp']
##重复
print(service * 3)				##重复输出3次service内容

在这里插入图片描述

service = ['http','ssh','ftp']
##连接
service1 = ['nfs','samba']
print(service + service1)		##将service和service1的输出连接起来

在这里插入图片描述

service = ['http','ssh','ftp']
service1 = ['nfs','samba']
##成员操作符
print('nfs' in service)			##当service中有字符nfs时输出True,没有则输出True
print('nfs' in service1)

在这里插入图片描述

service = ['http','ssh','ftp']
service1 = ['nfs','samba']
##for循环遍历
for i in service:
    print(i)

在这里插入图片描述
#列表里嵌套列表

service2 = [['http','80'],['ssh','22'],['ftp','21']]
##索引
print(service2[0][1])		##先找到service2里的第一个列表,再从这个列表里找到第二个字符

在这里插入图片描述

service2 = [['http','80'],['ssh','22'],['ftp','21']]
#切片
print(service2[:][1])
print(service2[:-1][0])

在这里插入图片描述

3.列表的增加
service = ['http','ssh','ftp']
print(service + ['firewalld'])			##在列表最后面添加一个字符

在这里插入图片描述

service = ['http','ssh','ftp']
##append:追加,追加一个元素到列表中
service.append('firewalld')
print(service)

在这里插入图片描述

service = ['http','ssh','ftp']
##extend:拉伸 追加多个元素到列表中
service.extend(['mysql','firewalld'])
print(service)

在这里插入图片描述

service = ['http','ssh','ftp']
##insert:在指定索引位置插入元素
service.insert(1,'samba')
print(service)

在这里插入图片描述

4.列表的删除
service = ['http','ssh','ftp']
##remove:删除指定的元素
a = service.remove('ssh')
print(service)

在这里插入图片描述

service = ['http','ssh','ftp']
##del,直接删除列表在内存中的值,删除后再输出会显示列表没有定义
print(service)
del service
print(service)

在这里插入图片描述

5.列表的修改
service = ['http','ssh','ftp']
##通过索引,重新给对应位置赋值
service[0] = 'mysql'
print(service)

在这里插入图片描述

service = ['http','ssh','ftp']
##通过切片,可以替换多个位置的索引值
print(service[:2])
service[:2] = ['samba','iscsi']
print(service)

在这里插入图片描述

6.列表的查看
service = ['ssh','http','ssh','ftp']
##查看出现的次数
print(service.count('ssh'))

在这里插入图片描述

service = ['ssh','http','ssh','ftp']
##查看指定元素的索引值
print(service.index('ssh'))
print(service.index('ssh',1,-1))		##从索引1到-1中查看ssh的索引值

在这里插入图片描述

7.列表的排序
import random
li = list(range(10))
print(li)								##从小到大输出

在这里插入图片描述

import random
li = list(range(10))
print(li)
##将列表打乱,随机排序
random.shuffle(li)
print(li)

d

##枚举:返回索引值和对应的value值
for i,v in enumerate('westos'):
    print(i,v)

在这里插入图片描述

#zip,使key值和value值对应输出
s1 = 'abc'
s2 = '456'

for i in zip(s1,s2):
    print(i)

for i in zip(s1,s2):
    print(''.join(i))

zip( ) 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
在这里插入图片描述

二、元组:

1.元组的创建
#元组(tuple): 不可变数据类型
t = (1,2.3,True,'westos')
print(t)
print(type(t))

#元组内可以存储任意数据类型
t1 = ([1,2,3],4)
t1[0].append(4)					##给指定索引追加字符
print(t1)
t2 = ('westos',)
print(type(t2))

在这里插入图片描述
在这里插入图片描述

2.元组的特性
users = ('root','westos','redhat')
passwds = ('123','456','789')
#索引和切片
print(users[0])
print(users[-1])
print(users[1:])						##输出除了第一个字符的其他字符
print(users[:-1])						##除了最后一个字符的其他字符
print(users[::-1])						##倒叙输出

在这里插入图片描述

users = ('root','westos','redhat')
passwds = ('123','456','789')
#重复
print(users * 3)						##将元组连续输出三次

在这里插入图片描述

passwds = ('123','456','789')
#连接,将指定字符与元组中的字符连接起来
print(passwds + ('012','230'))

在这里插入图片描述

users = ('root','westos','redhat')
passwds = ('123','456','789')
#成员操作符,查看元组中是否有指定的字符,有即为正确,没有就为错误
print('redhat' in users)
print('redhat' not in users)

在这里插入图片描述

users = ('root','westos','redhat')
passwds = ('123','456','789')
#迭代
for user in users:
    print(user)

在这里插入图片描述

users = ('root','westos','redhat')
passwds = ('123','456','789')
#按顺序输出元组中的字符
for index,user in enumerate(users):
    print('第%d个用户: %s' %(index+1,user))
#把两个元组以key和value值的关系对应起来输出
for user,passwd in zip(users,passwds):
    print(user,':',passwd)

在这里插入图片描述

3.元组的常用方法
t = (1,2.3,True,'westos','westos',2.3)

#显示元组中某个字符出现的次数
print(t.count('westos'))

#显示元组中某个字符的最小索引位置,如果元组中没有指定字符,输出会报错
print(t.index(2.3))

在这里插入图片描述

4.元组的应用场景
scores = (59,89,65,78,100)
#定义为列表来给一个无序数组排序
scoreli = list(scores)
scoreli.sort()
print(scoreli)
#元组的方法来排序
scores = sorted(scores)
print(scores)

在这里插入图片描述

#利用内置函数来完成平均成绩的求法,去掉了最高分和最低分
scores = (59,89,65,78,100)
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
#sum,求和	len,变量内字符的个数
print('最终成绩为: %.2f' %(sum(middlescore)/len(middlescore)))

在这里插入图片描述

三、集合:

1.集合的创建
#集合里面的元素是不可重复的
s = {1,2,3,1,2,3,4,5}
print(type(s))
print(s)
s1 = set([])
print(type(s1))

#集合的应用
li = [1,2,3,1,2,3]
print(list(set(li)))

在这里插入图片描述

2.集合的特性
#集合只支持成员操作符和for循环
s = {1,2,3}
print(1 in s)

for i in s:
    print(i)
    
#按照key值和value值的对应关系输出s中的值
for i,v in enumerate(s):
    print('index: %s,value: %s' %(i,v))

在这里插入图片描述

3.集合的常用方法
#集合:无序的数据类型
#添加顺序和在集合中的存储顺序是不一样的
s = {6,7,8,9}
#增加
s.add(2)
print(s)
#增加多个数据,已有的数据默认不会再次添加
s.update({5,2,3})
print(s)

在这里插入图片描述

s = {6,7,8,9}
#删除,从集合中将数据弹出(丢弃)
s.pop()
print(s)
#指定要删除的数据
s.remove(7)
print(s)

在这里插入图片描述

#集合的交集
s1 = {1,2,3}
s2 = {2,3,4}
#两种不同的命令方式都是为了得到s1与s2的交集
print('交集: ',s1.intersection(s2))
print('交集: ',s1 & s2)

在这里插入图片描述

s1 = {1,2,3}
s2 = {2,3,4}
#两种不同的命令方式都是为了得到s1与s2的并集
print('并集: ',s1.union(s2))
print('并集: ',s1 | s2)

在这里插入图片描述

s1 = {1,2,3}
s2 = {2,3,4}
#差集
print('差集: ',s1.difference(s2)) #s1 - (s1&s2)			## s1 中与 s2 不同的数
print('差集: ',s2.difference(s1)) #s2 - (s1&s2)			## s2 中与 s1 不同的数

在这里插入图片描述

s3 = {4,5,6}
s4 = {1,2,3}

print(s3.issuperset(s4))								##判断 s3 是否是 s4 的超集
print(s3.issubset(s4))									##判断集合 s3 的所有元素是否都包含在集合 s4 中
print(s3.isdisjoint(s4))								##判断集合 s4 中是否有包含 集合 s3 的元素

超集定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集。 S1是S2的超集,则S2是S1的真子集,反之亦然
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值