python - 为什么这不打印任何东西?
问题描述
我正在尝试打印“#”之后的列表元素中的所有内容,但我不断收到
“ValueError:‘#’不在列表中”
即使它就在那里,我可以看到它?我究竟做错了什么?
不久前我使用相同的索引函数完成了此操作,但它又恢复了,所以我真的很困惑。
data=["123#4567"]
print (data[data.index("#"):])
解决方案
代码
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']
推荐阅读
- mysql - 编写一个 SQL 查询来计算每个客户的总购买量
- azure - How can a gRPC Server application written in .NET Core 3.0 be hosted?
- mysql - node.js mysql计数行获取值
- javascript - 过滤后比较数组中父子字段的值
- amazon-web-services - Error: connect ECONNREFUSED after EC2 reboot
- python - How to regex a particular array variable from code string
- python - Simplify/shorten code for turtle using functions/loops
- python - 最长匹配仅与 Spacy Phrasematcher
- sql - 如何简化查询以检索 Oracle 中的详细信息?
- bash - 来自 bash 脚本的 Jenkins 控制台上没有彩色输出