首页 > 解决方案 > 为什么这不打印任何东西?

问题描述

我正在尝试打印“#”之后的列表元素中的所有内容,但我不断收到

“ValueError:‘#’不在列表中”

即使它就在那里,我可以看到它?我究竟做错了什么?

不久前我使用相同的索引函数完成了此操作,但它又恢复了,所以我真的很困惑。

data=["123#4567"]

print (data[data.index("#"):])

标签: pythonpython-3.x

解决方案


代码

data = ['123#4567']
data = [d.split('#')[1] for d in data]
print (data)

安慰

Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> data = ['123#4567']
>>> data = [d.split('#')[1] for d in data]
>>> print (data)
['4567']

解释

由于列表包含字符串,因此变量 d 是一个字符串。因此,d.split('#')[1]调用字符串的 split() 方法。根据文档,此方法的第一个参数是要拆分的字符串。该方法返回执行拆分产生的字符串列表,因此[1]返回结果列表中的第二个拆分字符串。

即['4567']


推荐阅读