【问题标题】:How to add one dictionary value multiple times to an array?如何将一个字典值多次添加到数组中?
【发布时间】:2019-04-02 18:06:14
【问题描述】:

我想将 f1 中的值两次添加到数组中,但是 extend() 方法给了我这个错误?

TypeError: 'int' 对象不可迭代

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    if key in s:
        mo.extend(val)

还有另一种方法可以将 f1 中的值两次添加到数组 mo 中吗?

最好的,

帕特里克

【问题讨论】:

  • 欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。您的错误消息与问题标题无关,并且您发布的代码在未定义的变量上失败。
  • 另外,我看不出有人试图识别 f1s 中出现两次。

标签: python arrays dictionary typeerror extend


【解决方案1】:

问题在于 extend 采用可迭代对象(列表、元组等),但您传递的是单个值 (int)。

您想改用append

这是一个例子:

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    if key in s:
        mo.append(val)

编辑:如果要将n 出现的val 放入mo 中,其中n 等于keys 中出现的次数,那么你可以这样做:

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
     n = s.count(key)
     mo.extend([val] * n)

【讨论】:

  • 我尝试追加,但是 f1 的值在数组中只有一次。我需要数组包含两次 f1 的值,因为它在 s 中是两次。
  • @Peet 哦,那你可以先occurrences = s.count(key) 然后mo.append([val] * count)
  • 这正是我所需要的!谢谢!
【解决方案2】:

.extend() 方法将列表添加到当前列表中,要添加值,您应该使用 .append() 方法

我想你想要的代码就是这个

s = ("f1", "f1")
mo = []
for key, val in shiftweek.items():
    for i in s:
       if key == i:
           mo.append(val)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2015-02-16
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多