Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将数学应用于列表的成员_Python_List - Fatal编程技术网

在python中将数学应用于列表的成员

在python中将数学应用于列表的成员,python,list,Python,List,我试图跟踪列表中的一些数字,但我无法编辑所述列表的成员。当我尝试从中减去时,会出现错误“不支持的操作数类型-=:'list'和'int'” seatCapacity[座椅]正确显示一个数字,因此我不确定我做错了什么 编辑: 以下是一些输出示例: print(seatCapacity) 输出: [[150], [120], [200], [80], [120], [80]] [150] 及 输出: [[150], [120], [200], [80], [120], [80]] [150]

我试图跟踪列表中的一些数字,但我无法编辑所述列表的成员。当我尝试从中减去时,会出现错误“不支持的操作数类型-=:'list'和'int'”

seatCapacity[座椅]正确显示一个数字,因此我不确定我做错了什么

编辑: 以下是一些输出示例:

print(seatCapacity)
输出:

[[150], [120], [200], [80], [120], [80]]
[150]

输出:

[[150], [120], [200], [80], [120], [80]]
[150]

seatCapacity
是一个列表列表,因为
line
是一个列表-请参见for循环开始后的第一行:

 line = [int(i) for i in line[10:].split()]
根据
prices.txt
的内容,您可以通过删除该行上的括号来解决此问题

seatCapacity[座椅]正确显示一个数字,因此我不确定我做错了什么

事实上,不是根据你发布的输出。如果
print(seatCapacity[seat])
显示
[150]
是正确的,那么
seatCapacity[seat]
实际上是一个列表。请注意表示列表的
[150]
和表示整数的
150
之间的区别

发生这种情况的原因是,在循环过程中,您将
line
设置为列表

line = [int(i) for i in line[10:].split()]
它的作用是以文件的当前行为例

"something 10 20 30 40"
去掉前10个字符

"10 20 30 40"
将其拆分为单个空格分隔的部分列表

["10", "20", "30", "40"]
然后迭代这些片段(
i
)并将其转换为整数(
int(i)
),将结果重新组合到一个列表中

[10, 20, 30, 40]
下一行中的
seatCapacity
将附加该列表


如果您想要附加一个整数,而不是一个列表,那么您必须做一些事情来从该列表中获取您想要的整数。例如,如果您总是想要列表中的第一项,请使用
list[0]
;如果您总是想要最后一项,请使用
list[-1]
。或者,如果您知道每行上总是有一个数字(不包括前10个字符),您可以直接将该字符串转换为一行,使用类似于
int(line[10:].strip())
的方法。(
strip()
删除开头和结尾的空白。根据文件内容,它可能是可选的。)

错误消息是什么?显示
seatCapacity[seat]
的值(这显然是一个列表)<代码>座位本身没有在您的示例中定义,也没有
prices.txt
的示例。请发布一个。对不起,seat是另一个函数0-5的数字,它给出的输出是[[150]、[120]、[200]、[80]、[120]、[80]]。当我尝试进行计算时,它给出的错误是“不支持的操作数类型-=:'list'和'int'”。我不确定您指的是哪个括号,prices.txt是csv行,从列出的行中删除括号会产生另一个错误。我也不确定行是如何变成列表的。括号是
[
]
——它们是用Python定义列表的方式
seatCapacity=[]
创建一个空列表。如果
行[10:].split()
包含多个数字,则可以使用第二个for循环将每个数字附加到
seatCapacity