【问题标题】:How to repeatedly append strings如何重复附加字符串
【发布时间】:2013-12-17 07:17:25
【问题描述】:

您好,我是一名新程序员,我希望在字典中重复追加字符串,至少 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']}

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

【问题讨论】:

    标签: python-3.x dictionary append repeat


    【解决方案1】:

    乘以它:

    >>> ['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)
    

    希望这会有所帮助!

    【讨论】:

    • 你好,什么是k和v?
    • “key”和“value”的常用简写
    • 嗨!我们正在遍历字典中的键值对。 k 是当前键,v 是当前值 :)
    • 啊,我明白了,好吧,让我尝试实现这个。
    • 你好,我得到了正确的列表输出......但我没有得到密钥和字典......我只是得到了列表。
    【解决方案2】:

    您可以为此使用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

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 2021-06-22
      • 2017-07-10
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多