導航:首頁 > 編程語言 > python集合代碼大全

python集合代碼大全

發布時間:2023-04-13 13:11:15

1. python有趣的編程代碼

classPoint:
row=0
col=0
def__init__(self,row,col):
self.row=row
self.col=col

def(self):
returnPoint(row=self.row,col=self.col)


#初始框架
importpygame
importrandom

#初始化
pygame.init()
W=800
H=600

ROW=30
COL=40

size=(W,H)
window=pygame.display.set_mode(size)
pygame.display.set_caption('貪吃蛇')

bg_color=(255,255,255)
snake_color=(200,200,200)

head=Point(row=int(ROW/2),col=int(COL/2))
head_color=(0,128,128)

snakes=[
Point(row=head.row,col=head.col+1),
Point(row=head.row,col=head.col+2),
Point(row=head.row,col=head.col+3)
]

#生成食物
defgen_food():
while1:
pos=Point(row=random.randint(0,ROW-1),col=random.randint(0,COL-1))

#
is_coll=False

#是否跟蛇碰上了
ifhead.row==pos.rowandhead.col==pos.col:
is_coll=True

#蛇身子
forsnakeinsnakes:
ifsnake.row==pos.rowandsnake.col==pos.col:
is_coll=True
break

ifnotis_coll:
break

returnpos


#定義坐標


food=gen_food()
food_color=(255,255,0)direct='left'#left,right,up,down

#
defrect(point,color):
cell_width=W/COL
cell_height=H/ROW

left=point.col*cell_width
top=point.row*cell_height

pygame.draw.rect(
window,color,
(left,top,cell_width,cell_height)
)
pass

#游戲循環
quit=True
clock=pygame.time.Clock()
whilequit:
#處理事件
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
quit=False
elifevent.type==pygame.KEYDOWN:
ifevent.key==273orevent.key==119:
ifdirect=='left'ordirect=='right':
direct='up'
elifevent.key==274orevent.key==115:
ifdirect=='left'ordirect=='right':
direct='down'
elifevent.key==276orevent.key==97:
ifdirect=='up'ordirect=='down':
direct='left'
elifevent.key==275orevent.key==100:
ifdirect=='up'ordirect=='down':
direct='right'

#吃東西
eat=(head.row==food.rowandhead.col==food.col)

#重新產生食物
ifeat:
food=gen_food()

#處理身子
#1.把原來的頭,插入到snakes的頭上
snakes.insert(0,head.())
#2.把snakes的最後一個刪掉
ifnoteat:
snakes.pop()

#移動
ifdirect=='left':
head.col-=1
elifdirect=='right':
head.col+=1
elifdirect=='up':
head.row-=1
elifdirect=='down':
head.row+=1

#檢測
dead=False
#1.撞牆
ifhead.col<0orhead.row<0orhead.col>=COLorhead.row>=ROW:
dead=True

#2.撞自己
forsnakeinsnakes:
ifhead.col==snake.colandhead.row==snake.row:
dead=True
break

ifdead:
print('死了')
quit=False

#渲染——畫出來
#背景
pygame.draw.rect(window,bg_color,(0,0,W,H))

#蛇頭
forsnakeinsnakes:
rect(snake,snake_color)
rect(head,head_color)
rect(food,food_color)

#
pygame.display.flip()

#設置幀頻(速度)
clock.tick(8)

#收尾工作

這是一個簡易版貪吃蛇的代碼,雖然結構簡單,但是該有的功能都是完整的,可玩性也不錯

2. Python的集合介紹

和列表類似,集合也是一個數據集合,其也不要求元素的類型一致。但是集合有下面兩個特點:

•集合內元素唯一。如不可以用1、2、1、1組成集合,因為其包含重復的1。

•集合是無序的,添加元素時不能指定位置,刪除元素時也不能通過指定位置,只能通過指定值。當然也不能通過位置來定位某個元素。

1、創建集合

我們可以從列表創建集合,將列表中的元素都加入到集合中,如果有重復的元素就僅保留一個。

a = set([1, 1, 3])

print(a)#輸出結果:set([1, 3])     

也可以從元組、字典和其他集合構建集合。比如:

a = set((0, 1, 2, 3, 3, 2))   

使用的是字典的鍵來構建集合,字典的值沒有被使用到,比如:

a = set({1:10, 2:20, 3:30})

從字元串構建集合,其每個字元都成為集合的一個元素,比如:

a = set("abcdefabc") 

輸出結果:a={'c', 'e', 'f', 'b', 'd', 'a'}

另外一個集合構建集合,比如:

a = set([1, 2, 3]) 

b = set(a)  輸出結果:b={1, 2, 3}

當然也可以構造一個空的集合,使用的方法是set()。空集合沒有任何元素,比如:

a = set()

1.添加元——add(值)

該函數只能添加一個元素。

如果添加的元素已經在集合中存在,那麼不會發生任何變化。

2.扔掉元素——discard(值)

該函數刪除集合中指定的值對應的元素。

如果指定值在集合中不存在,則不做任何操作。

3.刪除指定值——remove(值)

該函數和discard()的不同之處在於,如果指定的值在集合中不存在,會拋出異常。

4.清空所有元素——clear()

該函數扔掉所有的元素。執行完該函數後,該集合將變成一個空的集合。

a.clear()

5.刪除第一個元素——pop()

如果集合中有元素,則返回值為刪除掉的元素的值。

如果集合為空,則拋出異常。

6.得到差集——difference(集合對象)

該函數返回一個新的集合,該集合包含所有屬於a而不屬於b的元素,如圖所示。該操作不會改變原始集合a或者b的內容。

7.差集操作符(-)

該操作符和difference()類似,返回一個新的集合,該集合包含所有屬於a而不屬於b的元素。該操作不會改變原始輸入集合a或者b的內容。

8.從集合中刪除另一個集合中存在的元素——difference_update(集合對象)

該函數和difference()的不同是操作數a會被修改,而且沒有返回值。

9.得到兩個集合的交集——intersection(集合)

該函數返回所有的同時屬於集合a和集合b的元素組成的集合,即返回的是一個集合,該集合的所有元素都同時屬於集合a和b,如圖所示。輸入集合a和b在該過程中沒有發生任何改變。

10.交集操作符(&)

該操作符和intersection()的效果是一樣的。

11.刪除集合a中所有不屬於集合b的元素——intersection_update(集合)

該函數也是求交集,與intersection()不同的是其修改原始輸入集合,並且沒有返回值。這也是為何該介面函數後面帶有update字樣,因為其更新了原來的輸入集合。

12.是否存在交集——isdisjoint()

該函數判斷是否存在這樣的元素,其同時屬於集合a和集合b。如果存在這樣的元素,返回False;否則返回True。

13.並集——union(集合a,集合b)

該函數返回一個新的集合,該集合的元素要麼屬於輸入集合a要麼屬於集合b。該操作不修改作為輸入的兩個集合a和b。如圖表示該函數返回的集合的內容。

14.並集操作符(|)

該操作符和union()的效果是一樣的。其返回一個並集,並且不修改輸入集合的內容。

15.添加屬於b而不屬於a的元素——update()

該函數在集合a中添加屬於b而不屬於a的所有元素。該操作和union()不同的是,其修改了輸入集合a,並且沒有返回值。

16.外集——symmetric_difference()

外集就是由只屬於集合a或者只屬於集合b的元素組成的集合,如圖所示。該操作返回一個新的集合,並且不修改原來的輸入集合a和b。

17.外集操作符(^)

該操作符和symmetric_difference()的效果是一樣的,也是返回一個新的集合,並且不會修改輸入的集合a或者b。

18.a和b的並集減去a和b的交集——symmetric_difference_update()

該函數和symmetric_difference()的區別是,其修改了集合a的值,並且沒有返回值。

19.是指定集合的子集嗎——issubset()

a是b的子集就是說集合a的所有元素都屬於集合b。

如果a等於b,那麼a和b互為子集。

20.是指定集合的超集嗎——issuperset()

a是b的超集合就是說集合b中的所有元素都屬於集合a。

如果a是b的超集,那麼b就是a的子集。

如果a等於b,那麼它們互為子集,同時也互為超集。

3. python基礎:內置函數、方法、轉義字元大全

在寫python程序時,常能用到一些函數和方法,總結一下,保存起來,方便查詢。

一、內置函數

# abs()獲取數字絕對值

# chr(i)數字轉換為字元類型

# divmod() 獲取兩個數值的商和余數

# enumerate() 將可遍歷序列組合為索引序列

# float()轉換為浮點數

# format() 格式化字元串

# int()轉換為整數 

# input() 接受用戶輸入內容

# len() 計算元素個數

# max() 返回最大值

# min() 返回最小值

# math.ceil() 返回指定數值的上舍整數

# open()打開文件並返迴文件對象

# pow() 冪運算

# print()列印輸出 

# range() 生成器

# reversed()反轉所有元素

# round()四捨五入求值

# sorted()對可迭代對象進行排序 

# str() 轉換為字元串

# sum() 求和

# set() 創建集合

# tuple() 將序列轉換為元組

# zip()將可迭代對象打包成元組

二、方法

# append() 添加列表元素

# capitalize()首字母轉換為大寫 

# count()字元出現次數

# close() 關閉文件

# decode() 解碼字元串

# dict.keys() 獲取字典所有的鍵

# find()字元串首次出現的索引

# f.read() 讀取文件內容

# dict.update()更新字典

# dict.items() 獲取字典鍵/值對

# dict.get() 返回指定鍵的值

# encode() 編碼字元串

# list.sort() 排序列表元素

# index() 元素首次出現的索引

# isdigit() 判斷字元串是否只由數字組成

# isupper() 是否所有字母都為大寫

# isnum() 判斷字元串是否由字母和數字組成

# islower() 是否所有字母都為小寫

# isdecimal() 檢查字元串是否只包含十進制字元

# isalpha() 檢測字元串是否為純字母

# random.shuffle()隨機排序

# random.sample()返回無重復隨機數列表

# random.choice() 返回一個隨機元素

# random.randint() 生成指定范圍的隨機整數

# random.randrange() 生成指定范圍的指定遞增基數隨機整數

# pop() 刪除列表中的元素

# remove()刪除列表中的指定元素

# strip()去除空格

# lstrip()去除左側空格

# rstrip() 去除右側空格

# readline() 讀取單行內容

# root.after() Tkinter中等待一段時間後再執行命令

# str.isnumeric() 驗證字元串是否為數字(適用於Unicode)

# split()分割字元串

# ord() 將字元轉換為整數

# replace() 字元串替換

# ljust() 左對齊填充

# rjust() 左對齊填充

# readlines() 讀取所有行內容

# datetime.datetime.now() 返回指定時區的本地日期時間

# datetime.datetime.today() 獲取當前本地日期的date對象

# datetime.utcnow() 返回當前UTC時間的datetime對象

# time.strptime()把時間字元串解析為元組

# time.time()返回當前時間的時間戳

# time.sleep()暫停指定秒數

# time.strftime() 返回指定格式的日期字元串

# time.mktime() 接收時間元組並返回時間戳

# os.getcwd() 獲取當前工作目錄

# os.listdir() 獲取指定路徑下的目錄和文件列表

# os.makedirs() 遞歸創建目錄

# os.rename() 重命名目錄或文件

# os.path.exists() 判斷路徑是否存在

# upper() 全部轉換為大寫字母

# lower()  全部轉換為小寫字母

# sys.stdout.write() 標准輸出列印

# sys.stdout.flush()刷新輸出 

# shutil.() 復制單個文件到另一文件或目錄

# write() 寫入文件內容

# winsound.Beep() 打開電腦揚聲器

# zfill() 在字元串前面填充0

三、循環語句

# break終止當前循環

# continue 終止本循環進入下一次循環

# with open() as file 以with語句打開文件(數據保存)

四、轉義字元

\ 行尾續行符

\' 單引號 

\'' 雙引號

\a 響鈴

\e 轉義

\n 換行

\t 橫向製表符

\f 換頁

\xyy 十六進制yy代表的字元

\\反斜杠符號

\b 退格

\000 空

\v 縱向製表符

\r 回車

\0yy 八進制yy代表的字元

\other 其他的字元以普通格式輸出

4. 好玩的python代碼示例

import random

while True:
# 出拳
punches = ['石頭','剪刀','布']
computer_choice = random.choice(punches)
user_choice = ''
user_choice = input('請出拳:(石頭、剪刀、布)') # 請用戶輸入選擇
while user_choice not in punches: # 當用戶輸入錯誤,提示錯誤,重新輸入
print('輸入有誤,請重新出拳')
user_choice = input()

# 亮拳
print('————戰斗過程————')
print('電腦出了:%s' % computer_choice)
print('你出了:%s' % user_choice)

# 勝負
print('—————結果—————')
if user_choice == computer_choice: # 使用if進行條件判斷
print('平局!')
# 電腦的選擇有3種,索引位置分別是:0石頭、1剪刀、2布。
# 假設在電腦索引位置上減1,對應:-1布,0石頭,1剪刀,皆勝。
elif user_choice == punches[punches.index(computer_choice)-1]:
print('你贏了!')
else:
print('你輸了!')
a1 = input('要繼續游戲嗎,請輸入n退出,輸入其他繼續:') # 在 while True 循環中設置跳出條件。
if a1 == 'n':
break
else:
print('---------next game------- are you ready???')

5. Python中創建集合的方法有哪些呢

集合分為兩種:可變集合(set)和不可變集合(frozenset),現在學習的是可變集合。

在Python中,有關於集合的操作主要有:集合的創建;集合的添加和刪除;集合的交、並和差集運算。

今天先來學習如何創建集合。

集合的創建有兩種方法:直接賦值法和set()函數法。

1、直接賦值法

和Python的其它序列一樣,採用直接賦值法就可以直接創建一個集合,具體語法格式如下:

setname = {「element1」,「element2」,「element3」,……,「elementn」,}

從格式上看,和其它的序列創建方法基本一樣,就是集合名setname直接使用賦值運算符等號「=」賦值,等號後面的元素內容使用英文半形的大括弧「{ }」括起來,各個元素之間依然使用英文半形的逗號「,」分隔。

這里雖然和字典一樣使用大括弧「{ }」,但是只要記住字典的元素是由鍵值對組成的(詳見前第62節內容),就完全可以區分所創建的是字典還是集合了。

6. python數據類型(集合)

    1.集合(set)是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)

    2.基本功能是進行成員關系測試和刪除重復元素

    3.可以使用大括弧 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典

    4.因為set存儲的是無序集合,所以我們沒法通過索引來訪問。訪問 set中的某個元素實際上就是判斷一個元素是否在set中。

1.創建集合

s=set()#創建一個空集合

s1={1,2,3,'a','python'}

2.刪除重復的元素

集合是一個無序不重復元素的序列(意思是有重復的會自動刪除,每次列印元素的位置不一定)

3.成員關系測試(檢測某個成員是否在集合中)

案例:從終端輸入5位數,以空格隔開,把這5位數存入列表中,剔除重復的數據,列印出來

#提示,列表轉集合,集合轉列表

a=input("請輸入5位數字:")

mylist=a.split()

print(mylist)

b=set(mylist)

c=list(b)

print(c)

4.集合常用操作

    1.添加元素

    2.刪除元素

    3.刪除整個集合

    4.獲取集合的長度

    5.不支持改元素

集合操作-添加元素

格式:

集合.add(元素)

格式:

集合.update(元素)

區別:

add不能添加列表,update可以

update是將字元串中的拆分成字元進行追加

add,是當做整體追加在集合中

#案例:從終端輸入一個數字就加入集合中,然後列印,又輸入一個數字,然後列印,直到輸入-1,退出輸入

#然後列印最終的集合

ms=set()

while 1:

a=int(input("請輸入一個數字:"))

if a==-1:

    break

    ms.add(a)

print(ms)

print(ms)

#案例:從終端輸入一個字元串就加入集合中,然後列印,又輸入一個字元串,然後列印,直到輸入q,退出輸入

#然後列印最終的集合,字元串要分開存儲,如輸入hello,存儲的列表是{'h','e','l','0'}

ms=set()

while 1:

a=input("請輸入一個字元串:")

if a=='q':

    break

    ms.update(a)

print(ms)

print(ms)

集合操作-刪除元素及刪除整個集合

格式:

集合.remove(元素)  # 元素如果不存在會引發KeyError

集合.discard(元素)  # 元素如果不存在不發生任何事

集合.pop()  # 集合元素是字元串類型時刪除隨機元素。 集合元素是其他數據類型時,刪除左邊第一個元素

del 集合名 #刪除整個集合

#案例:有集合{1,2,3,'hello','world'},刪除全部字元串,然後最左邊第一個元素

a={1,2,3,'hello','world'}

a.discard("hello")

a.discard("world")

a.pop()

print(a)

集合操作-獲取集合的長度

格式:

len(集合名)

#案例:有集合{1,2,3,4,'hello','a'},保留1個元素,其他的刪除,假如元素個數不確定

s={1,2,3,4,'hello','a'}

for i  in range(len(s)-1):

            s.pop()

  print(s)

集合的集運算

集合的交集,並集,差集,對稱差集的運算

{1,2,3,4}交集{4,5,6,7} -->4   交集(&)

{1,2,3,4}並集{4,5,6,7} ->1,2,3,4,5,6,7  並集(|)

{1,2,3,4}差集{4,5,6,7} ->1,2,3  差集(-)

{1,2,3,4}對稱差集{4,5,6,7}->1,2,3,5,6,7 4同時出現在兩個集合中,不選它 對稱差集(^)

#案例:使用花括弧和set創建各一個集合,然後對集合進行交、並、差、對稱差運算

s={1,2,3,4,5,6}

s1=set([6,7,8,9,10])

print(s&s1)

print(s|s1)

print(s-s1)

print(s^s1)

7. Python的集合有哪些操作

集合是一個無序的,不重復的數據組合,它有著兩個主要作用:去重以及關系測試。去重指的是當把一個列表變成了集合,其中重復的內容就自動的被去掉了

關系測試指的是,測試兩組數據之間的交集、差集、並集等關系。

去重測試代碼如下:

#創建一個列表--裡面存在一些重復值

test_list = [1,2,3,4,2,2,3,4,3,2,3,4]

#利用集合將列表中重復的內容去掉

test_list = set(test_list)

#列印測試並且查看test_list被賦予新值後的數據類型print(test_list,type(test_list)) # {1, 2, 3, 4}

Tip:需要注意的是,集合和字典一樣都是無序的。

獲取交集需要使用集合中的方法intersection方法,獲取兩個集合中的交集代碼如下:

#創建兩個集合,並且獲取集合的交集

test_list_01 = set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 = set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#在上面的兩個集合中,存在相同的值,那麼現在我們取出兩個集合中的交集

test_intersection = test_list_01.intersection(test_list_02)print(test_intersection) # {'YanYan', 'LiBai'}

獲取並集的方式需要採用集合中union方法,獲取兩個集合的並集代碼如下:

#創建兩個集合,並且獲取集合的交集

test_list_01 =set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 =set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#採用集合中的union方法獲取並集

test_list_union = test_list_01.union(test_list_02)

print(test_list_union) # {'LiBai', 'LuLu', 'ZhangXueYou', 'LiuDeHua', 'YangMi', 'YanYan'}

獲取差集的方式要採用集合中的difference方法,獲取兩個集合的差集的代碼如下所示:

#創建兩個集合,並且獲取集合的交集

test_list_01 = set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 = set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#使用集合中的difference方法來獲取差集

test_difference = test_list_01.difference(test_list_02)

test_difference2 = test_list_02.difference(test_list_01)

print(test_difference) # {'LuLu', 'YangMi'}print(test_difference2) # {'ZhangXueYou', 'LiuDeHua'}

判斷一個集合是否是另外一個集合的子集可以使用issubset()方法,同樣,還可以使用issuperset()方法判斷一個集合是否是另外一個集合的父級

代碼如下:

#創建兩個集合

list_set = set([1,2,3,4])

list_son = set([2,3])

#判斷list_son是否是list_set的子集print(list_son.issubset(list_set)) # True#判斷list_set是否是list_son的父級print(list_set.issuperset(list_son)) # True

對稱差集(又有人稱之為叫做反向差集),指的是取出兩個集合中互相都沒有的值取出放在一個集合中。

代碼如下:

#創建兩個集合

list_set_num1 = set([1,3,5,7,9])

list_set_num2 = set([2,3,4,6,9,10])

#獲取兩個集合的對稱差集print(list_set_num1.symmetric_difference(list_set_num2)) # {1, 2, 4, 5, 6, 7, 10}

如果上述的難以理解的話,可以對對稱差集理解為去掉兩個集合中都存在的內容,將剩餘的內容取到一個新的集合中。

除了上述的這些方法實現的關系功能之外,還有一個方法isdisjoint(),功能是判斷兩個集合中是否有相同的值,如果兩個集合中沒有相同的值(即沒有交集),那麼返回True

代碼如下:

#創建集合

test_set_num1 = set([1,2,3,4])

test_set_num2 = set([5,6,7,8])

test_set_num3 = set([1,3,7,8])

#使用isdisjoint()方法來判斷print(test_set_num1.isdisjoint(test_set_num2)) # Trueprint(test_set_num1.isdisjoint(test_set_num3)) # False

通過運算符來進行關系測試

在上面的應用中,主要是通過python中的方法進行的關系測試,那麼在python中,除了使用方法以外,還可以使用關系運算符來進行關系測試。

實例代碼如下:

test_list_01 =set(['YanYan','LiBai','LuLu','YangMi'])

test_list_02 =set(['YanYan','LiuDeHua','ZhangXueYou','LiBai'])

#獲取交集&print(test_list_01 & test_list_02) # {'LiBai', 'YanYan'}

#獲取並集|print(test_list_01 | test_list_02) # {'LuLu', 'LiBai', 'LiuDeHua', 'YanYan', 'ZhangXueYou', 'YangMi'}

#獲取差集-print(test_list_01 - test_list_02) # {'LuLu', 'YangMi'}print(test_list_02 - test_list_01) # {'LiuDeHua', 'ZhangXueYou'}

#獲取對稱差集print(test_list_01 ^ test_list_02) # {'ZhangXueYou', 'YangMi', 'LuLu', 'LiuDeHua'}

集合的增刪改查

添加

語法:Set.add()

代碼如下:

#創建一個集合

test_set =set(['YanYan'])

#添加

test_set.add('LiBai') #添加一項

test_set.update(['LuLu','JingJing']) #一次性向集合中添加多項

#輸出集合

print(test_set) #{'YanYan', 'LuLu', 'LiBai', 'JingJing'}

刪除

刪除集合中的某一個元素可以使用remove方法

代碼如下:

#創建一個集合

test_set = set(['YanYan'])

#使用remove方法刪除元素

test_set.remove('YanYan')print(test_set) # set()

刪除項目除了使用remove以外,還可以使用pop()方法,但是pop()方法刪除內容不能夠指定,只是隨機刪除。

pop方法會把刪除的內容返回,示例代碼如下:

#創建一個集合

test_set = set([20,9,'a',1,2,3,4])print(test_set.pop()) # 1print(test_set.pop()) # 2print(test_set.pop()) # 3

刪除元素還可以使用discard()方法,這個方法沒有返回值,如果列印返回值的話會輸出None

#創建一個集合

test_list = set([1,2,3,4,5])

#使用discard()方法刪除--注意,discard()方法刪除返回None,也就是沒有返回值print(test_list.discard(3)) # None#此時原集合中的3已經被刪除了print(test_list) # {1, 2, 4, 5}

查詢

xins #判斷x是否是s的成員

xnotins 判斷x是否是s的成員

len(x) #查看x的長度

s <= t #測試是否s中的每一個元素都在t中

s >= t #測試是否t中的每一個元素都在s中


8. python基礎代碼是什麼

代碼:

defnot_empty(s):

returnsandlen(s。strip())>0

#returnsands。strip()

#如果直接單寫s。strip()那麼s如果是None,會報錯,因為None沒有strip方法。

#如果s是None,那麼Noneand任何值都是False,直接返回false

#如果s非None,那麼判定s。trip()是否為空。

這樣子filter能過濾到None,"",""這樣的值。

分成兩部分看。第一部分是對長度進行序列。相當於就是range(5)他的結果就是。01234。第二部分就是具體的排序規則。排序規則是用nums的值進行排序,reverse沒申明就是默認升序。就是用nums(0到4)的值進行排序,根據這個結果返回的一個range(5)的數組。

(8)python集合代碼大全擴展閱讀:

根據PEP的規定,必須使用4個空格來表示每級縮進。使用Tab字元和其它數目的空格雖然都可以編譯通過,但不符合編碼規范。支持Tab字元和其它數目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。

Python的函數支持遞歸、默認參數值、可變參數,但不支持函數重載。為了增強代碼的可讀性,可以在函數後書寫「文檔字元串」(Documentation Strings,或者簡稱docstrings),用於解釋函數的作用、參數的類型與意義、返回值類型與取值范圍等。可以使用內置函數help()列印出函數的使用幫助。

9. python集合

*事先說明:以下代碼及結果來自本設備Python控制台,在不同設備上可能結果有區別,望自己嘗試為妙


集合(set),是一種Python里的(class),

集合類似於列表(list)可更改可迭代(iterable),但是元素不重復

定義集合使用花括弧{},例如

>>> s = {"apple", "banana", "strawberry", "watermelon"}

警告!!!如果使用空括弧

>>> a = {}

>>> a.__class__

<class 'dict'>

a將成為一個字典

想要定義空集合,

請使用類名。

>>> a = set()

類名定義也可以把迭代轉換為集合:

>>> b = set("abc")

>>> b

{'a', 'b', 'c'}

但是,保存後它是無序的。

>>> s

{'banana', 'watermelon', 'strawberry', 'apple'}

(結果僅供參考,在不同設備上略有不同)

下面介紹它的性質:

1. 可更改:

>>> s.add("lemon")

>>> s

{'banana', 'strawberry', 'lemon', 'watermelon', 'apple'}


>>> s.update(("orange", "grape"))

>>> s

{'banana', 'strawberry', 'orange', 'lemon', 'watermelon', 'apple', 'grape'}

警告!!!如果使用字元串,字元串也會被迭代:

>>> a = set()

>>> a.update("apple")

>>> a

{'a', 'p', 'e', 'l'}


>>> s.remove("lemon")

>>> s

{'banana', 'strawberry', 'orange', 'watermelon', 'apple', 'grape'}

>>> s.remove("cat")

Traceback (most recent call last):

File "<stdin>", line 1, in <mole>

s.remove("cat")

KeyError: 'cat'


>>> s.discard("grape")

>>> s

{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}

>>> s.discard("dog")

>>> s

{'banana', 'strawberry', 'orange', 'watermelon', 'apple'}

2. 可迭代:

>>> for x in s:

... print(x)


banana

strawberry

orange

watermelon

apple


3. 可以使用 len 函數獲取集合長度;

>>> len(s)

5

可以使用in關鍵字檢查一個元素是否在集合內,將返回邏輯值(bool)

>>> "apple" in s

True

>>> "candy" in s

False

4.集合具有不重復性,因此它會自動去重:

>>> c = set("Hello World!")

>>> c

{' ', 'e', 'l', 'H', '!', 'r', 'W', 'o', 'd'}

5. 集合的運算

>>> d = set("abcdef")

>>> e = set("efghij")

>>> d

{'c', 'e', 'a', 'b', 'f', 'd'}

>>> e

{'h', 'e', 'g', 'j', 'f', 'i'}

>>> d - e # 集合d去掉集合e含有的元素,或者說集合d包含而集合e不包含的元素(不改變原集合)

{'a', 'b', 'd', 'c'}

>>> d | e # 集合d,e的所有元素

{'c', 'e', 'h', 'g', 'a', 'b', 'j', 'f', 'd', 'i'}

>>> d & e # 集合d,e都包含的元素

{'f', 'e'}

>>> d ^ e # 不同時出現在集合d, e中的元素

{'c', 'g', 'h', 'a', 'b', 'j', 'd', 'i'}

注意!!!

字元串、列表通用的+和*不適用於集合

>>> "abc" + "def"

'abcdef'

>>> [1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

>>> d + e

Traceback (most recent call last):

File "<stdin>", line 1, in <mole>

d + e

TypeError: unsupported operand type(s) for +: 'set' and 'set'

>>> "a" * 5

'aaaaa'

>>> [1] * 3

[1, 1, 1]

>>> d*3

Traceback (most recent call last):

File "<stdin>", line 1, in <mole>

d * 2

TypeError: unsupported operand type(s) for *: 'set' and 'int'

(作者的小觀點:既然集合是不能重復的,那麼乘以、重復是沒有意義的)

閱讀全文

與python集合代碼大全相關的資料

熱點內容
直播用哪個app播放背景音樂 瀏覽:850
點歌機系統app在哪裡下載 瀏覽:609
javadate類型轉換string 瀏覽:694
RPG游戲解壓後亂碼 瀏覽:988
無線通信的幾個密鑰演算法 瀏覽:644
王者榮耀app數據修復在哪裡 瀏覽:429
基於單片機飲水機溫度控制系統的設計 瀏覽:455
c中委託被編譯後的結構 瀏覽:152
飛燕app怎麼注銷賬號 瀏覽:895
cad命令縮小 瀏覽:154
linux發展史 瀏覽:629
伺服器選用什麼CPU比較好 瀏覽:334
明星怎麼宣傳安卓 瀏覽:953
8255晶元編程 瀏覽:65
java文件bat運行 瀏覽:747
java常見筆試 瀏覽:529
360程序員模式 瀏覽:363
AQS演算法的查詢樹構造 瀏覽:329
小豬微信營銷源碼 瀏覽:12
阿里雲伺服器能連接列印機嗎 瀏覽:175