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

Python列表使用extend添加字符串后,打印最后元素得到字母而非字符串的问题

问题原因

问题出在list.extend()方法的特性上:它会遍历传入的可迭代对象,将对象中的每个元素逐个添加到列表中。字符串属于可迭代对象,每个字符就是它的元素,所以extend("Motherland")会把"Motherland"拆成单个字符依次加入列表,最后一个元素自然是字符'd'。

解决方案

有两种简单的修复方式:

方式1:使用append()方法

append()会把传入的对象作为单个元素直接添加到列表末尾,完全匹配你的需求:

states_of_america = ["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin", "Wyoming"]

states_of_america.append("Motherland")  # 替换extend为append

print(states_of_america[-1])  # 输出:Motherland

方式2:用列表包裹字符串后再extend()

如果一定要使用extend(),可以把目标字符串放到一个单元素列表中,这样extend()会把这个列表里的唯一元素(完整字符串)加入原列表:

states_of_america = ["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin", "Wyoming"]

states_of_america.extend(["Motherland"])  # 把字符串放进列表

print(states_of_america[-1])  # 输出:Motherland

内容的提问来源于stack exchange,提问作者Hriday Valluri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:12:14