簡體   English   中英

在 f 字符串中循環作為嵌入的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM