尝试将列表条目添加到字符串时出现“ TypeError:只能加入可迭代对象”

499602D2

我有一个带有两个列表作为变量的类。它有一个对象,该对象应该将列表中的每个元素添加到一个(很长的)字符串中,然后返回到主程序,最终通过打印。我正在使用for循环遍历列表,并使用.join()将每个对象添加到字符串中,但是却遇到TypeError:“只能加入可迭代对象”。

清单中包含在餐厅购买的商品的价格,因此仅包含浮动数字。

Class A:

    def __init__(self, etc.):
        self.__foods = []
        self.__drinks = []

然后,我有一个对象,该对象应该以预定格式打印收据,然后将其作为字符串传递给主程序。

Class A:
    ...

    def create_receipt(self):
        food_price_string = "" # What is eventually joined to the main string
        food_prices = self.__foods # What is iterated

        for price in food_prices:
            food_price_string.join(price) # TypeError here
            food_price_string.join("\n")  # For the eventual print

这是我收到TypeError的地方-程序拒绝将'price'变量连接到上面创建的字符串。我应该对饮料价格也做同样的事情,然后将两者都加入到字符串的其余部分中:

威廉·范昂塞姆

这里有两个问题:

  1. str.join 不更改字符串(字符串是不可变的),它返回一个新字符串;
  2. 它以连接在一起可迭代字符串作为输入,而不是将单个字符串添加在一起。

food_prices可迭代的事实无关紧要,因为您使用for循环,所以prices是的元素food_prices,因此您可以连接列表的单个项目。

您可以像这样重写程序:

def create_receipt(self):
    food_prices = self.__foods
    food_price_string = '\n'.join(str(price) for price in food_prices)
    food_price_string += '\n'  # (optional) add a new line at the end
    # ... continue processing food_price_string (or return it)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试使用继承将新对象添加到列表时出现 NullReferenceException

分配切片时出现TypeError:“只能分配可迭代”

将数组中的字符串项添加到对象列表

使用 tia.bbg.datamgr (Python 2.7) 获取数据时,“只能加入可迭代”

尝试将新的List对象添加到预定义的List对象时出现错误

如何将迭代过的数字添加到字符串列表中?

尝试添加到 javascript 中的字符串,但它只是不断添加“对象 HTMLElement”而不是元素

“ TypeError:散布不可迭代实例的无效尝试”:将数组或对象添加到数组

如何将字符串中的属性添加到javascript中的对象?

将标头添加到对象或csv字符串

setState()将Proxy对象添加到属性,而不是React Native中的字符串值

以某种方式将数组字符串添加到对象中

Ruby通过插值将字符串添加到对象

Tkinter 使用键将字符串添加到文本对象

通过ArrayAdapter将字符串添加到列表时出现UnsupportedOperationException

尝试将超类对象添加到列表时如何克服列表子类型推断问题?

如何将元素加入可迭代对象队列中,例如Queue [List [Node]]?

Python:迭代时将元素添加到列表

TypeError:'NoneType'对象不是可迭代的-但似乎仍在列表中迭代?

如何将包含可解析字段的字符串添加到可以添加到数据帧的列中

尝试将逗号分隔的字符串添加到 API 调用末尾时出现 400 错误

错误:对于输入字符串:“”,当我将对象层添加到我的tilemap中时

PySpark将列添加到现有DataFrame-TypeError:无效的参数,不是字符串或列

“只能加入可迭代的” python错误

将具有两个单独字符串的对象添加到Java中的ArrayList中

vb.net 将多值字符串活动目录查询结果添加到 ArrayList 对象

尝试在Android中将数据添加到类的对象时出现java.lang.NullPointerException

尝试将对象添加到ObservableCollection时出现问题

尝试将对象添加到 Typescript 数组时出现编译错误