這次寫乙個生成假人以及假人配對的**吧。
匯入random, choices, randint這三個函式庫來達到隨機生成假人,隨機選擇資料的目的。
from random import random, choices, randint
1.可以先自己查資料找尋涉及到的待匹配資料放到字典裡面,例如:姓名,性別,年齡,身高,工作地區,收入,學歷,對另一半的要求等。
2.隨機設定假人的資料
3.採用迴圈生成假人(採用了列表巢狀字典)
candidate =
for i in
range(0
,40):
nametext =
'''王怡君、楊琬翰、杜偉來、謝勝瑞、強琳任、白可欣、李之公升、黃世豪、邱育治、劉秀娟、林秀佳、周筱婷、趙志偉、蘇慶昆、蔣明哲、林智竹、張秀喬、陳盈韋、林威友、張維梅、林詩康、劉美玲、簡少霞、葛彥廷、蔡原士、白家慧、黃心怡、王木盛、施緯原、張家智、李彥志、陳偉誠、蘇建添、司俊巨集、陳品旺、李慧君、傅欣怡、蔡宥木、何怡君、林宜欣'''
name = nametext.split(
"、")
choicename = name[
int(random()*
len(name))]
# print(choicename)
citytext =
'''成都市 廣安市 德陽市 樂山市 巴中市 內江市 宜賓市 南充市 自貢市 資陽市 綿陽市 眉山市 遂寧市 雅安市 閬中市 攀枝花市 廣漢市 綿竹市 萬源市 華鎣市 江油市 西昌市 彭州市 簡陽市 崇州市 什邡市 峨眉山市 邛崍市'''
city = citytext.split(
" ")
choicecity = city[
int(random()*
len(city))]
# print(choicecity)
***text =[0
,1]# 0代表男 1代表女
choice*** = ***text[
int(random()*
len(***text))]
# print(choice***)
choiceage = randint(18,
50)choiceincome = randint(
20000
,600000
) education =
["高中"
,"初中"
,"中專"
,"大專"
,"博士"
,"碩士"
,"本科"
] choiceeducation = education[
int(random()*
len(education))]
# print(choiceage)
# print(choiceincome)
# print(choiceeducation)
person =
#print(person)
1.通過雙重迴圈隨機配對,配對成功就break
2.格式化輸出配對成功的假人
3.可以加上count來計算配對成功的對數。
count =
0for i in candidate:
for j in candidate:
if j == i:
continue
else
:if i[
"aim"
].split(
",")[0
]== j[
"city"
]and
int(i[
"aim"
].split(
",")[1
])>
int(j[
"income"])
andint
( i[
"aim"
].split(
",")[2
])== j[
"***"]:
print
("{}與{}配對成功"
.format
(i["name"
], j[
"name"])
) count +=
1break
print
("%d對配對成功"
% count)
結果如下(每次執行結果不同,是隨機的):
python 假人隨機匹配
import random for i in range 0 1000 nametext 黃子韜 肖戰 迪麗熱巴 蔡徐坤 鄭愷 李晨 成龍 甄子丹 歐豪 鹿晗 name nametext.split choicename name int random.random len name print c...
OI學習筆記 配對堆
配對堆是一種可並堆 可以將兩個堆合併,且速度快 時間複雜度 合併merge o 1 插入push o 1 彈出pop o logn 配對堆不是二叉堆 我一開始不知道這個所以一直搞不懂 配對堆存樹的方式不一樣,如圖,對於每個節點,有一條邊指向最左邊的兒子,一條指向他右邊的兄弟 和普通樹的對比 靈魂畫圖...
Python小白練習之桌球賽配對問題
題目 兩個桌球隊進行比賽各出三人,甲隊為abc三人,乙隊為xyz三人。a不和x比,c不和xz比.求出比賽名單。分析 分別將abc和xyz進行配對,然後剔除不符合題目要求的配對,最終結果就是比賽名單,但是如何在程式中將abc和xyz之間搭建關係呢,這是思考的問題所在。此時想用到迴圈進行遍歷,但是字母之...