Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么不是';这不是在打印什么吗?_Python_Python 3.x - Fatal编程技术网

Python 为什么不是';这不是在打印什么吗?

Python 为什么不是';这不是在打印什么吗?,python,python-3.x,Python,Python 3.x,我正试图打印列表元素中“#”后面的所有内容,但我一直在 ValueError:“#”不在列表中 即使它就在那里,我也能看到?我做错了什么 我以前用同样的索引函数做过这个,但它又起作用了,所以我真的很困惑 data=["123#4567"] print (data[data.index("#"):]) 代码 安慰 解释 因为列表包含字符串,所以变量d是一个字符串。因此,d.split('#')[1]调用字符串的split()方法。根据,此方法的第一个参数是要拆分的字符串。该方法返回执行拆分后产

我正试图打印列表元素中“#”后面的所有内容,但我一直在

ValueError:“#”不在列表中

即使它就在那里,我也能看到?我做错了什么

我以前用同样的索引函数做过这个,但它又起作用了,所以我真的很困惑

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("#"):])