Python 板


LINE

如果三個變數,互相都不等於。羅輯上是 x != y != z 但是這樣寫是錯的,必需寫成: x != y and x != z and y != z 那如果要多個變數,互相都不相等, 舉個例子,例如,5個變數互不相等, 即 x != y != z != I != j 那有啥簡潔又正確的寫法嗎? 我是問Python 3, 謝謝。 ----- Sent from JPTT on my iPhone --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.42.3 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1590227109.A.0D3.html
1F:推 cuteSquirrel: https://onlinegdb.com/SkbFX_Ls8 05/23 17:57
2F:推 Yshuan: 推 取set很棒 05/23 18:04
3F:→ pmove: C大好方法,也就是 5 == len(set(x,y,z,I,j)) 05/23 18:10
4F:→ pmove: 但是如果 x,y,z,I,j 是class, 那就無法用set, 這時有無好方 05/23 18:12
5F:→ pmove: 法? 05/23 18:12
6F:推 TitanEric: 感覺用all也可以 05/23 18:12
7F:→ TitanEric: class有override equal跟hash就可以 05/23 18:13
8F:→ outshaker: class可以用id 或 hash 來判斷阿 05/23 18:20
9F:→ pmove: 例如變數是list的情況,x=[2,1,1], y=[1,2,1], z=[2,1,1], 05/23 18:49
10F:→ pmove: I=[1,1,2], j=[2,2,1]. 這種情況set((x,y,z,I,j))會有錯, 05/23 18:49
11F:→ pmove: 有何好方法? 05/23 18:49
12F:→ pmove: 轉成tuple是一種方法 05/23 18:53
13F:→ pmove: Ok, 感謝以上各位大大的回答 05/23 18:54
14F:推 vi000246: 如果是複雜情況就override equal再用for loop判斷吧 05/23 19:52
15F:→ outshaker: 複雜變數要檢查互不相等,就寫迴圈檢查阿 05/23 19:54
16F:→ zerof: operator.ne 05/23 20:30
17F:推 ddavid: 如果該class可以被sort的話,單純的兩兩比較是O(n^2),先 05/23 20:30
18F:→ ddavid: sort後只比較相鄰元素是O(nlogn + n) = O(nlogn)會好一點 05/23 20:31
19F:→ ddavid: 另外上面提到hash也是一種方式,就是看看要花多少額外空間 05/23 20:32
20F:→ pmove: 回z大, operator.ne只能傳入兩個arguments的樣子,沒法多個 05/23 22:03
21F:→ alvinlin: 我感覺原來的最簡潔好懂。不知道為何要緣木求魚。x != y 05/24 03:25
22F:→ alvinlin: and x != z and y != z不是挺好的 05/24 03:25
23F:推 oToToT: 他應該試想處裡有很多變數的情況吧,例如1000個之類的 05/24 14:46
24F:→ zerof: ....你可以用 list comprehension +zip 05/24 17:32
25F:→ zerof: zip 會漏, itertools.combinations 才對 05/24 18:08
26F:推 alan23273850: 這種問題 stackoverflow 上面應該很多ㄅ 05/24 18:28
27F:→ pmove: 回z大, combinations我知,不過很多變數的情況,個人覺得c 05/24 20:42
28F:→ pmove: 大的set法,速度會比較快 05/24 20:42
29F:→ s860134: 直覺 hash table 查數量確實會快一點 05/30 18:02







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP