You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:为列表元素添加句号及AttributeError报错解决求助

问题解决:为字符串添加句号及AttributeError报错修复

问题描述

需要给doing列表的每个元素末尾添加句号,期望输出示例:I am watching.。编写随机选择元素的Python代码时,尝试用'.'.append()方法添加句号,触发报错:

AttributeError: 'str' object has no attribute 'append'

报错原因

'.'是字符串对象,而append()是列表专属方法,用于给列表追加元素。字符串属于不可变序列类型,本身没有append方法,直接调用就会抛出AttributeError。

正确实现方法

1. 批量给doing列表所有元素添加句号

用列表推导式遍历原列表,通过字符串拼接+给每个元素加上句号:

doing = [item + '.' for item in doing]

2. 修正随机选择逻辑(匹配主语与be动词)

原代码中随机选择主语和be动词是独立的,会出现主语与be动词不匹配的情况(比如"You"配"is"),可以通过索引关联main和main0列表,确保匹配正确,再组合成完整句子。

完整修正代码:

import random

main = ['I', 'You', 'He', 'She']
main0 = ['am', 'are', 'is', 'is']
doing = ['playing', 'watching', 'reading', 'listening']

# 批量给doing列表每个元素添加句号
doing = [action + '.' for action in doing]

# 随机选择索引,保证主语和be动词对应
index = random.randint(0, len(main)-1)
subject = main[index]
be_verb = main0[index]
action = random.choice(doing)

# 组合成符合要求的句子
result = f"{subject} {be_verb} {action}"
print(result)

3. 单独给选中的元素加句号(如果不需要批量修改)

如果不想修改原doing列表,只给随机选中的元素加句号,直接在拼接时处理:

rd0 = random.choice(doing) + '.'

内容的提问来源于stack exchange,提问作者ѕραcє αηɗ тιмє

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:18:43