簡體   English   中英

數組中的%元組? python(不將元組追加到數組中)

[英]% Tuple in an array? python (not append tuple into array)

假設您有以下內容:

x=10
l=11
list = ["%s bla","%s bla"%(x,l)]
print(list)

在這種情況下,您會收到此錯誤:

TypeError:並非在字符串格式化期間轉換所有參數

我假設這是由於元組在數組中。 使用.format ,你會得到:

['{} bla', '11 bla']

我問題的任何解決方案?

您需要為每個字符串賦予自己的變量:

x=10
l=11
list = ["%s bla" % x,"%s bla" % l]
print(list)

使用zip和列表推導來組合值。

>>> x = 10
>>> L = 11
>>> lst = ["%s bla","%s bla"]
>>> [s % n for s, n in zip(lst, (x, L))]
['10 bla', '11 bla']

在您的示例中,您僅將格式應用於第二個字符串,該字符串只有一個格式說明符,但您傳遞了兩個值,因此出現錯誤。

如果你想使用str.format ,就這樣做吧。

>>> lst2 = ["{} bla","{} bla"]
>>> [s.format(n) for s, n in zip(lst2, (x, L))]
['10 bla', '11 bla']

在最新版本的python(3.6或更高版本)中,您還可以:

x=10
l=11
l2 = [f"{x} bla",f"{l} bla"]
print(l2)

輸出:

['10 bla', '11 bla']

這是因為你只將它分配給最后一個元素另一個選項是:

>>> x=10
>>> y=11
>>> l = ["%s bla","%s bla"]
>>> list(map(lambda x: x[0]%x[1],zip(l,[x,y])))
['10 bla', '11 bla']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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