我試圖打印一個字符串,每個字母都有連續數量,所以字符串應該打印「aaabaaccc」。誰能告訴我,我要去哪裏錯了,請爲我只是在Python初學者用連續字母數字打印字符串
h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
g = ''
for f in h:
g = g + f
我試圖打印一個字符串,每個字母都有連續數量,所以字符串應該打印「aaabaaccc」。誰能告訴我,我要去哪裏錯了,請爲我只是在Python初學者用連續字母數字打印字符串
h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
g = ''
for f in h:
g = g + f
您試圖解壓您的元組(兩個項目)成一個,你不能這樣做。
試試這個:
for letter, multiplier in h:
g += letter * multiplier
h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
g = ''
for char, count in h:
#g = g + f #cant convert tuple to string implicitly
g=g+char*count
print(g)
String*n
字符串重複n次。
h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
g = ''
for i, j in h: # For taking the tuples into consideration
g += i * j
print(g) # printing outside for loop so you get the final answer (aaabccc)
您可以使用Python列表理解這樣做避免了字符串連接。
print ''.join(letter * count for letter, count in [("a", 3), ("b", 1), ("a", 2), ("c", 3)])
這將打印:
aaabaaccc
的Python讓你的數字 「正片疊底」 的字符串:
>>> 'a' * 5
'aaaaa'
>>> 'ab' * 3
'ababab'
所以,你可以循環在列表上, 「正片疊底」,由弦數字,並以這種方式構建字符串。
>>> h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
>>> g = ''
>>> for letter, number in h:
... g += letter * number
...
>>> print(g)
aaabaaccc
如果 「H」 總是會像被格式化,因爲這一個oneliner是:
g = "".join([i[0]*i[1] for i in h])