如何重复追加字符串

时间:2013-12-01 15:27:39

标签: python-3.x dictionary append repeat

您好我是一名新程序员,我希望在字典中重复附加字符串,至少3次。

例如:

输入:

{Words:['hi', 'bye', 'goodbye']}

输出:

{Words:['hi', 'bye', 'goodbye','hi', 'bye', 'goodbye','hi', 'bye', 'goodbye','hi', 'bye', 'goodbye','hi', 'bye', 'goodbye']}

我试过的是:

d = {'Words':['hi', 'bye', 'goodbye']}
new_d = {}
for key in d:
    new_d[key] = []
    for element in d[key]:
        new_d[key] += [element]*10

print new_d

但我得到了这个输出:

{'Words':['hi','hi','hi','hi','hi', 'bye','bye','bye','bye','bye','bye', 'goodbye','goodbye','goodbye','goodbye','goodbye']}

以上不是我要找的输出......

2 个答案:

答案 0 :(得分:4)

只需乘以它:

>>> ['hi', 'bye', 'goodbye']*3
['hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye']

所以在你的背景下,它会是这样的:

for k, v in d.items():
    d[k] = v*3

或者,你也可以使用一个函数,虽然有点复杂:

def multiply(l, n):
    length = len(l)
    new = []
    for _ in range(n):
        for i in range(length):
                new.append(l[i])
     return new

结果:

>>> l = ['hi', 'bye', 'goodbye']
>>> multiply(l, 2)
['hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye']

以下是如何使用该功能:

for k, v in d.items():
    d[k] = multiply(v)

希望这有帮助!

答案 1 :(得分:3)

您可以使用dictionary comprehension

>>> dct = {'Words':['hi', 'bye', 'goodbye']}
>>> {k:v*5 for k,v in dct.items()}
{'Words': ['hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye', 'hi', 'bye', 'goodbye']}
>>>

如果您需要,请参考dict.items