1.元組
元組不支持變量賦值(元組中的列表可以)
y= (1,) #單獨定義元組的時候需要後面加逗號
print(type(y))
s = ([1,2,3],4)
s[0].append(4)
print(s)
元組的特性
Users = ('root','westos','redhat')
Passwds = ('123','456','789')
#索引,切片
print(Users[-1])
print(Users[::-1])
#
#重複
print(Users * 2)
#連接
print(Users + Passwds)
#成員操作附
print('redhat' in Users)
print('redhat' not in Users)
#for
for user,index in enumerate(Users):
print(user,index)
for user,passwd in zip(Users,Passwds):
print(user, ':' ,passwd)
#方法
t = (1,1.2,True,'westos')
print(t.count('westos')) #計數
print(t.index(1)) #下標
# #賦值
s = ('yueyue',23,'boy')
name,age,sex = s
print(name,age,sex)
# #排序
soces = (100,66,55,44)
socesli = list(soces)
socesli.sort()
t = tuple(socesli)
print(t)
求平均分:
soces = (100,66,55,44)
socesli = list(soces)
socesli.sort()
t = tuple(socesli)
# print(t)
#
#去掉最高最低求平均
maxsocre,*middlesocre,minsocre = t
print(maxsocre)
print(minsocre)
print(middlesocre)
print(sum(middlesocre) / len(middlesocre)) #平均分
2.集合
集合(元素不可重複,不支持索引,切片,重複,連接;支持成員操作符)
s = {1,2,2,3,3,5,4}
print(s)
print(type(s))
s1 = ()
print(type(s1))
s2 = set([])
print(type(s2)) #定義空集合
li = [1,2,2,5.5,5,5]
print(list(set(li))) # 集合去重
s = {1,2,3}
for i in s:
print(i,end='|')
for i,v in enumerate(s):
print(i,v)
#集合的添加
s = {6,7,8} # 一個一個添加
s.add(4)
print(s)
s.update({7,4,1})
print(s)
#刪除
s.pop()
print(s)
s.remove(6)
print(s)
#交集 並集 差集
s1 = {1,2,3}
s2 = {2,3,4}
#並集
print('並集:',s1 | s2)
print('並集',s1.union(s2))
#交集
print('交集',s1 & s2)
print('交集', s1.intersection(s2))
#差集
print('差集',s2.difference(s1))
print('差集',s2-(s1&s2))
print('差集',s1.difference(s2))
print('差集',s1-(s1&s2))
s1 = {1,2,3}
s2 = {2,3,4}
#對等差分: 並集-交集
print('對等差分',s1.symmetric_difference(s2))
print('對等差分',s1^s2)
練習:
"""
明明想在學校中請一些同學一起做一項問卷調查,爲了實驗的客觀性
他先用計算機生成了N個1~1000之間的隨機整數(N<=1000),N是用戶輸入的,
對於
其中重複的數字,只保留一個,把其餘相同的數字去掉,不同的數對應着不>同的學生的學號,然後再把這些
數從小到大排序,按照排好的順序去找同學做調查,請你協助明明完成“去重
”與排序工作
"""
import random
s =set([])
for i in range(int(input('N:'))):
num = random.randint(1,1000)
s.add(num)
print(len(s))
print(sorted(s))
3.字典
users = ['user1','user2']
passwds = ['123','456']
a = dict(zip(users,passwds))
print(a)
print(type(a))
student = {
'leilei':{
'id':'123',
'age':'18',
'sex':'boy'
},
'yueyue':{
'id':'234',
'age':'23',
'sex':'boy',
}
}
print(student['yueyue']['id'])
字典:不支持索引,切片 支持成員操作符,for
d = {
'1':'a',
'2':'b'
}
print('1' in d) #成員操作符
print('1' not in d)
for key in d:
print(key,d[key])
#字典的增加
services = {
'http':80,
'ftp':21,
'ssh':22
}
services['samba'] = 23
print(services)
#
services_update = {
'https':'443',
'firewalld':'8080',
'http':'8080' #如果存在,就覆蓋
}
services.update(services_update)
print(services)
services.update(orcle=9090,nfs=23)
print(services)
services.setdefault('http',44) #如果key存在就不生效
print(services)
services.setdefault('idea',44)
print(services)
#刪除
del services['http']
print(services)
#item =services.pop('https') #不存在報錯
item =services.pop('http')
print(item)
print(services)
services.clear() # 清空
print(services)
services = {
'http':80,
'ftp':21,
'ssh':22
}
print(services.keys())
print(services.values())
print(services.items())
print(services.get('https')) # 不存在輸出none
for k,v in services.items():
print('key:',k, 'value:',v)
練習:
"""
# 數字重複統計:
1). 隨機生成1000個整數;
2). 數字的範圍[20, 100],
3). 升序輸出所有不同的數字及其每個數字重複的次數;
"""
import random
num1 = []
for item in range(1000):
num1.append(random.randint(20,1000))
sorted_nums = sorted(num1)
num_dict = {}
for num in sorted_nums:
if num in num_dict:
num_dict[num] += 1
else:
num_dict[num] =1
print(num_dict)
print(len(num_dict))
"""
棧的工作原理
入棧 append
出棧 pop
棧頂元素
棧的長度 len
棧是否爲空 len == 0
"""
stack = []
info= ("""
1.入棧
2.出棧
3.棧頂元素
4.棧的長度
5.棧是否爲空
6.退出
""")
while True:
print(info)
choice = input('選擇:')
if choice == '1':
item = input('入棧元素:')
stack.append(item)
print('%s 入棧成功' % item)
elif choice == '2':
if not stack:
print('棧爲空,不能出棧')
else:
item = stack.pop()
print('%s 元素出棧成功' %item)
elif choice == '3':
if len(stack) == 0:
print('棧爲空')
else:
print('棧頂元素爲%s' %(stack[-1]))
elif choice == '4':
print('棧的長度爲%s' % (len(stack)))
elif choice == '5':
if len(stack) == 0:
print('棧爲空')
else:
print('棧不爲空')
elif choice == '6':
print('退出')
break
else:
print('請輸入正確選擇')
入棧
棧頂元素
出棧
棧的長度
棧是否爲空退出