我希望我的代码找到大写字母的位置并将它们添加到数组中。测试后,我收到错误: TypeError: list.append() 只需要一个参数(给定 2 个参数) 此外,当使用单个大写字母的输入进行测试时,它工作得很好,但是当它们是多个大写字母时,数组将仅包含最后一个位置。
for i in range(0,length):
letter = camel_case[i]
for k in range(0,25):
check = capitals[k]
if check == letter:
position = i
print(f"{position}")
global caps
caps = []
caps.append(capital_quantity,i)
capital_quantity = capital_quantity + 1
else:
pass
该错误是不言自明的。
append
函数仅接受一个参数,但传递了两个参数。
替换以下代码行:
caps.append(capital_quantity,i)
这样:
caps.append(capital_quantity)
对于列表,您一次只能附加一项。如果您想将 Capital_quantity 和 i 保留在一起,您可以将它们作为辅助列表附加到您的列表中,即
caps.append([capital_quantity,i])
值得注意的是,如果出于某种原因您想以平面结构而不是嵌套列表将这两个值添加到列表中,您可以使用 .extend() 方法。 这是了解该行为的很好的教程。
好像你把
list.append
和 list.insert
搞混了。
list.append
接受一个参数以添加到列表末尾,而 list.insert
接受位置参数和要插入到列表的该位置的项目。
此外,您的代码中似乎还存在其他错误/修复。
range(0,25)
应该是 range(0,26)
,因为范围中的最后一项将比结束参数少一个(数字 0-24 而不是 0-25)caps=[]
都会将列表caps
设置为空列表。我认为这不是你想要的。else:pass
capital_quantity
。只需使用list.append
。如果您需要计算列表中有多少个大写字母,只需执行 len(caps)
这是我如何以最直接的方式解决这个问题:
caps=[]
for i,c in enumerate(camel_case):
if c.isupper():
caps.append(i)
我们检查字符串
c
中的每个字符 camel_case
是否为大写,如果是,我们将其索引 i
添加到列表中。
您可以像这样使用大括号将两个或多个数据保存在列表中。
caps.append({capital_quantity,i})
使用list.extend方法
caps.extend([capital_quantity,i])
或
caps.extend((capital_quantity,i))