Python 为什么不是';这不是在打印什么吗?
我正试图打印列表元素中“#”后面的所有内容,但我一直在 ValueError:“#”不在列表中 即使它就在那里,我也能看到?我做错了什么 我以前用同样的索引函数做过这个,但它又起作用了,所以我真的很困惑Python 为什么不是';这不是在打印什么吗?,python,python-3.x,Python,Python 3.x,我正试图打印列表元素中“#”后面的所有内容,但我一直在 ValueError:“#”不在列表中 即使它就在那里,我也能看到?我做错了什么 我以前用同样的索引函数做过这个,但它又起作用了,所以我真的很困惑 data=["123#4567"] print (data[data.index("#"):]) 代码 安慰 解释 因为列表包含字符串,所以变量d是一个字符串。因此,d.split('#')[1]调用字符串的split()方法。根据,此方法的第一个参数是要拆分的字符串。该方法返回执行拆分后产
data=["123#4567"]
print (data[data.index("#"):])
代码
安慰
解释
因为列表包含字符串,所以变量d是一个字符串。因此,d.split('#')[1]
调用字符串的split()方法。根据,此方法的第一个参数是要拆分的字符串。该方法返回执行拆分后产生的字符串列表,因此[1]
返回结果列表中的第二个拆分字符串
i、 e.['4567']它看起来不像,但您使用它的方式,
数据的行为就像一个嵌套列表:
[ # this is a list
"123#4567" # this is a string, which sometimes acts like a list
]
因此,当您执行data.index(“#”)
时,python会说“好的,数据中有一个元素,它是”123#4567“
,它不是”
,因此会抛出一个错误,因为我没有找到我要查找的元素”
如果要拆分字符串或正确查找索引,则需要进入列表并访问字符串本身。这可以显式执行:
data = ["123#4567"]
print(data[0][data[0].index("#"):]) # data[0] holds the string
迭代地,如果数据
包含多个字符串:
data = ["123#4567", "987#6543"]
print(elem[elem.index("#"):] for elem in data) # iterate over every string in data, which would work even if data only contained one string
或者只需首先将数据设置为字符串:
data = "123#4567"
print(data[data.index("#"):])
“#”
不在列表中数据
,它在列表中的字符串中数据
。本身不是该列表中的项目。请尝试打印(数据[0][data[0]。索引(“#:”)
打印(数据[0][data[0]。索引(“#”+1)]
是否确实要使用数据=“123”[/4567]
而不仅仅是data=“123#4567”
?如果data
列表中有多个项目,比如data=[“123#4567”,“123#4567”,“123#4567”]
我想,如果有人对python还不够陌生,不得不问这个问题,他们不作一点解释就不会理解这个答案。
data = ["123#4567", "987#6543"]
print(elem[elem.index("#"):] for elem in data) # iterate over every string in data, which would work even if data only contained one string
data = "123#4567"
print(data[data.index("#"):])