###python中元组和集和的知识###

1.元组的定义
列表:打了激素的数组
元组:带了紧箍咒的列表
不可变数据类型,没有增删改查
可以存储任意数据类型
#定义一个元组
t = (1,1.2,True,‘westos’)
print(t,type(t))

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

t2 = ()
print(t2)
t3 = tuple([])
print(t3)
t4 = list(())
print(t4)

#元组如果只有一个元素,后面一定要加逗号,否则数据类型不确定
t5 = (2.5,)
print(t5,type(t5))

2.元组的常用方法

t = (10,1.2,True,'westos')
print(t.count('westos'))					##统计为westos个数
print(t.index(10))							##现实10元素的索引

3.元组的特性
t = (1,1.2,True,‘westos’)

#索引
print(t[0])
print(t[1])

#切片
print(t[:-1])
print(t[::-1])

#连接
print(t + (1,3,4))
#不同的数据类型之间不能连接
#print(t+[5,6,7])
#print(t+‘redhat’)

#重复
print(t * 19)

#for循环
for i in t:
print(i)

#成员操作符
print(1 in t)
print(1 not in t)

4.元组应用的场景
#1.变量交换数值
a = 1
b = 2
b,a = a,b
“”"
1.先把(a,b)封装成了一个元组(1,2)
b,a=a,b ===> b,a=(1,2)
b=(1,2)[0] a=(1,2)[1]
“”"
print(a)
print(b)

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

3#元组赋值:有多少个元素,就用多少个变量接收
t = (‘westos’,10,100)
name,age,score=t
print(name,age,score)

scores = (100,49,89,78)
scoreli = list(scores)
scoreli.sort()
print(scoreli,type(scoreli))
score_sort =tuple(scoreli)
print(score_sort,type(score_sort))

score_sort = sorted(scores)
print(score_sort,type(score_sort))

5.元组小练习
题目:将一个列表的数据复制到另一个列表中

origin = ['python','java','c']
redhat = origin[:]
print(redhat)

6.集和的定义

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

#如和定义一个空集和
s2 = {} # 默认情况下是dict(字典)
print(s2,type(s2))

s3 =set([])
print(s3,type(s3))

#列表去重
li = [1,2,3,2,1,4]
print(list(set(li)))

7.集和的特性
集和支持的特性只有 成员操作符(索引 切片 重复 连接 均不支持)

s = {1,2,3}

print(1 in s)
print(2 not in s)

#for循环
for i in s:
print(i,end=’’)
print()
print(’~~~~~~~~~~’)

#for + index
for i,v in enumerate(s):
print(‘index: %s,value:%s’ %(i,v))

8.集和的常用方法

#可变的数据类型
s = {6,7,3,1,2,3}
#添加顺序,和在集和中存储的顺序不同
#增加
s.add(8)
s.add(4)
print(s)
#增加多个元素
s.update({2,6,8,9})
print(s)
#删除
s.pop()
s.pop()
print(s)
#删除指定元素(元素要存在)
s.remove(18)
print(s)
#交集 并集 差集
s1 = {1,2,3}
s2 = {2,3,4}

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

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

#差集
#可以理解为s1中有哪些s2没有的元素
print(‘差集:’,s1.difference(s2))
print(‘差集:’,s1-s2)
#可以理解为s2中有哪些s1没有的元素
print(‘差集:’,s2.difference(s1))
print(‘差集:’,s2-s1)

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

s3 = {1,2}
s4 = {1,2,3}

#s3是否为s4的子集
print(s3.issubset(s4))
#s3是否为s4的超集
print(s3.issuperset(s4))
#两个集和是不是相交
print(s3.isdisjoint(s4))

9.集和小练习
1.华为机测题:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输入的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的学号,然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与排序工作

import random

#先生成n个随即数
s = set([])
for i in range(int(input("N:"))):
    s.add(random.randint(1,1001))
print(sorted(s))
  1. 后台管理员只有一个用户: admin, 密码: admin
    当管理员登陆成功后, 可以管理前台会员信息.
    会员信息管理包含:
    #添加会员信息
    #删除会员信息
    #查看会员信息
    #退出

print(‘管理员登陆’.center(50,’’))
inuser = input(‘Username:’)
inpasswd = input(‘Password:’)
#所有会员的用户名
users = [‘root’,‘westos’]
#所有会员的密码
password = [‘123’,‘456’]
if inuser == ‘admin’ and inpasswd == ‘admin’:
print(‘管理员登陆成功’)
print(‘会员管理’.center(50,’
’))
while True:
print("""
操作目录
1. 添加会员信息
2. 删除会员信息
3. 查看会员信息
4. 推出
“”")
choice = input(‘请选择你的操作:’)
if choice == ‘1’:
print(‘添加会员信息’.center(50,’’))
addUser = input(‘添加会员名称’)
if addUser in users:
print(‘用户%s已经存在’ %(addUser))
else:
addPasswd = input(‘密码:’)
users.append(addUser)
password.append(addPasswd)
print(‘添加用户%s成功’ %(addUser)
elif choice == ‘2’:
print(‘删除会员信息’.center(50,’
’))
delUser = input(‘删除的会员名:’)
delIndex = users.index(delUser)
users.remove(delUser)
password.pop(delIndex)
print(‘删除会员%s成功’ %(delUser)
elif choice == ‘3’:
print(‘查看会员信息’.center(50,’*’))
print(’\t用户名\t密码’)
userCount = len(users)
for i in range(userCount):
print(’\t%s\t%s’ %(users[i],password[i]))
elif choice == ‘4’:
exit()
else:
print(‘请输入正确的选择’)
else:
print(‘管理员登陆失败!’)

10.python中的内置方法

 >>> min(3,4)
 3
 >>> min(9,4)
 4
 >>> max(9,4)
 9
 >>> max(3,4)
 4
 >>> sum(range(1,101))
 5050
 >>> sum(range(2,101,2))
 2550
 >>> sum(range(1,101,2))
 2500
 >>>

#枚举:返回索引值和对应的value值

for i,v in enumerate('hello'):
print(i,v)
print(str(i) + '----->' + v)

#zip
s1 = 'abc'
s2 = '123'
for i in zip(s1,s2):
    print(i)

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

for i in zip(s1,s2):
    print('-'.join(i))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值