[英]Loop inside an f-string as a value for an embed
我有一個包含一些值的元組,我想將它們發送到嵌入中。 它們在這樣的字典中dict = {key: [(1, 2, 3), other values here], other key: [(1, 2, 3, 4, 5), other values here]}
現在這里的一些元組長度不同,如果我使用循環添加嵌入字段,它會觸發我,因為 discord 不允許 name 參數為 false 或 null。 如果我使用寬度為 0 的空白字符,那么我寧願沒有很大的空間。 嘗試使用三元運算符,但沒有奏效。 我也不能讓這個for i in range(0, len(dict) - 1): pass
因為在我可以用它來索引元組之前循環已經結束了。 我也試過做
value = f'{tuple[i] for i in range(0, len(tuple) - 1)}'
但機器人返回<generator object stats.<locals>.<genexpr> at 0x0000012E94AB3200>
而不是元組內的值。
編輯:
感謝回答的人,現在可以了,謝謝
tuple[i] for i in range(0, len(tuple) - 1)
是一個生成器表達式,它不會產生任何值,除非被循環或list()
之類的東西消耗
您可以改用等效的列表理解:
f'{[tuple[i] for i in range(0, len(tuple) - 1)]}'
或者將生成器放在list()
f'{list(tuple[i] for i in range(0, len(tuple) - 1))}'
因為你的理解沒有包含在[]
中,所以它在技術上是一個生成器表達式()
(我認為這在 python 2.7 中可以工作),試試這個:
my_tuple = (1, 2, 3, 4)
f'{[my_tuple[i] for i in range(0, len(my_tuple) - 1)]}'
Output:
[1, 2, 3]
此外,在 python 中沒有元組推導,因為元組是不可變的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.