Python—元组,集合

一.元组

1.元组的创建

"""
元组(tuple):元组本身是不可变数据类型,没有增删改查
元组内可以存储任意数据类型
"""

t = (1,2.3,True,'star')
print(t)
print(type(t))

#元组里面包含可变数据类型,可以间接修改元组的内容
t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)

#元组如果只有一个元素的时候,后面一定要加逗号,否则数据类型不确定
t2 = ('hello',)
t3 = (1,)
print(type(t2))
print(type(t3))

2.元组的特性

allowUsers = ('root','westos','redhat')
allowPasswd = ('123','456','789')

#索引 切片
print(allowUsers[0])
print(allowUsers[-1])
print(allowUsers[1:])
print(allowUsers[2:])
print(allowUsers[:-1])
print(allowUsers[::-1])

#重复
print(allowUsers * 3)

#连接
print(allowUsers + ('linux','python'))

#成员操作符
print('westos' in allowUsers)
print('westos' not in allowUsers)

#for循环
for user in allowUsers:
    print(user)

for index,user in enumerate(allowUsers):
    print('第%d个白名单用户: %s' %(index+1,user))

#zip:两个元组的元素之间一一对应
for user,passwd in zip(allowUsers,allowPasswd):
    print(user,':',passwd)

3.元组的常用方法

t = (1,2.3,True,'westos','westos')
print(t.count('westos'))
print(t.index(2.3)

4.元组的应用场景

#变量交换数值
# a = 1
# b = 2
# b,a = a,b
# #1.先把(a,b)封装成一个元组(1,2)
# #2.b,a=a,b ---> b,a=(1,2)
# #b = (1,2)[0] a = (1,2)[1]
# print(a)
# print(b)

#打印变量的值
# name = 'westos'
# age = 11
# t = (name,age)
# print('name:%s , age:%d' %(name,age))
# print('name:%s , age:%d' %t)

#元组的赋值,有多少个元素,就用多少个变量接收
# t = ('westos',11,100)
# name,age,score = t
# print(name,age,score)

score = (100,89,45,78,65)
# scoreLi = list(score)
# scoreLi.sort()
# print(scoreLi)
scores = sorted(score)
# print(scores)
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
print('最终成绩为: %.2f' %(sum(middlescore) / len(middlescore)))

二.集合

1.集合的定义

#集合里面的元素是不可重复的
s = {1,2,3,1,2,3,4,5}
print(s)
print(type(s))

s1 = {1}
print(s1)
print(type(s1))

#如何定义一个空集合
# s2 = {}
# print(type(s2))
#
# s3 = set([])
# print(s3)
# print(type(s3))

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

2.集合的特性

 #集合只支持成员操作符 for循环

s = {1,2,3}
# print(s[0])
# print(s * 3)
# print(s + {4,5,6})
print(1 in s)

for i in s:
    print(i,end='|')

for i,v in enumerate(s):
    print('index: %s,value: %s' %(i,v))

3.集合的常用方法

 #集合:无序的数据类型
#添加顺序和在集合中存储的顺序是不一定相同的

# s = {6,7,8,9}
#增加一个元素
# s.add(1)
# print(s)

#增加多个元素
# s.update({5,3,2})
# print(s)

#删除
# s.pop()
# print(s)

#删除指定元素
# s.remove(5)
# print(s)

s1 = {1,2,3}
s2 = {2,3,4}

#并集
print('并集:',s1.union(s2))
print('并集:',s1|s2)

#交集
print('交集:',s1.intersection(s2))
print('交集:',s1&s2)

#差集
print('差集:',s1.difference(s2)) #s1-(s1&s2)
print('差集:',s2.difference(s1)) #s2-(s1&s2)

#对等差分:并集-交集
print('对等差分:',s2.symmetric_difference(s1))
print('对等差分:',s1^s2)

s3 = {1,2}
s4 = {1,2,3}
#s3是否为s4的超集
#超集:如果s3中的每一个元素都在集合s4中,且s4中可能包含s3中没有的元素,
#那么s4就是s3的一个超集
print(s3.issuperset(s4))
print(s4.issuperset(s3))
#s3是否为s4的子集
print(s3.issubset(s4))
#两个集和是不是 不相交
print(s3.isdisjoint(s4))

#集合练习

用列表存储数据,用集合的特性去重

 """
# _*_coding:utf-8_*_
Name:03_去重.py
Date:1/16/19
Author:westos-dz
Desc:
"""
"""
生成N个0-20之间的随机整数,去重
"""

import random                ##引入随机数

N = int(input('请输入要生成的数字个数:'))       #输入生成随机数个数
list1 = []                  ##定义一个空列表

for i in range(N):          ##开始循环,循环次数为生成随机数个数
    num = random.randint(0,1000)     #生成随机数
    list1.append(num)       ##列表在末尾添加每次生成的随机数

a = set(list1)              ##循环结束,将列表转换为集合,去重
print(sorted(a))

猜你喜欢

转载自blog.csdn.net/daizheng12345/article/details/86507980
今日推荐