iT邦幫忙

0

python Tuple 判斷大小問題

我把一個tuple

[('0', '0'), ('0.001', '0.108'), ('0.002', '0.105'), ('0.003', '0.109'), ('0.004', '0.105'), ('0.005', '0.103'), ('0.006', '0.107'), ('0.007', '0.111'), ('0.008', '0.110'), ('0.009', '0.108'), ('0.01', '0.109')]

我把它轉成下面這樣 float

[[0.0, 0.0], [0.001, 0.108], [0.002, 0.105], [0.003, 0.109], [0.004, 0.105], [0.005, 0.103], [0.006, 0.107], [0.007, 0.111], [0.008, 0.11], [0.009, 0.108], [0.01, 0.109]

我只要大於 >=0.108 的該怎麼做 結果會等於下面這樣

[[0.001, 0.108],[0.003, 0.109],[0.007, 0.111],[0.008, 0.11],[0.009, 0.108], [0.01, 0.109]]
froce iT邦大師 5 級 ‧ 2018-09-17 09:13:52 檢舉
你先練練你的表達吧...你的問題很難讓人看懂。
變成 tuple ,然後什麼數值要大於?tuple[0]還是tuple[1]?
hoolada iT邦新手 5 級 ‧ 2018-09-17 09:57:29 檢舉
更改了 感恩

1 個回答

0
froce
iT邦大師 5 級 ‧ 2018-09-17 10:48:49
最佳解答

https://ideone.com/qJVY2C

data_gte = [tuple(float(x) for x in d ) for d in data if float(d[1]) >= 0.108]

但是如果要嵌套太多生成器的話,就不建議這樣寫了,程式會變的很難懂。

hoolada iT邦新手 5 級 ‧ 2018-09-17 12:02:40 檢舉

我的轉float 跟 判斷 是要分開執行的

data = [ [float(x)for x in d] for d in data]#我轉完後 我不會單獨寫一個判斷出來

轉完變這樣
[[0.0, 0.0], [0.001, 0.108], [0.002, 0.105], [0.003, 0.109], [0.004, 0.105], [0.005, 0.103], [0.006, 0.107], [0.007, 0.111], [0.008, 0.11], [0.009, 0.108], [0.01, 0.109]]
直接從這裡開始 不用從tuple開始寫
答案

[[0.001, 0.108],[0.003, 0.109],[0.007, 0.111],[0.008, 0.11],[0.009, 0.108], [0.01, 0.109]]
froce iT邦大師 5 級 ‧ 2018-09-17 12:48:24 檢舉
hoolada iT邦新手 5 級 ‧ 2018-09-17 14:32:18 檢舉

感謝 我放了出現跟我寫的結果一樣 後來才發現原來不是寫錯自己後面沒改target_item_list 沒跟著一起做>=0.108所以都只找到0.097-0.10 非常感謝!!!!!!

我要發表回答

立即登入回答