Python 拆分字符串并选取值
我有Python中的字符串,我正在使用Split进行拆分。然后我访问它的长度,并希望获取第三个值Python 拆分字符串并选取值,python,split,Python,Split,我有Python中的字符串,我正在使用Split进行拆分。然后我访问它的长度,并希望获取第三个值 Q = S.split('/') E = = len(Q) R = Q[E[2]] // ERROR 知道在使用拆分后如何访问第三个值吗?只需执行以下操作: R = S.split('/')[2] 选择第三个值。通常,使用/进行拆分时,它与文件路径相关。如果是这种情况,您可以使用以下快捷方式: import os R = os.path.split(path) 只要做: R = S.split
Q = S.split('/')
E = = len(Q)
R = Q[E[2]] // ERROR
知道在使用拆分后如何访问第三个值吗?只需执行以下操作:
R = S.split('/')[2]
选择第三个值。通常,使用/
进行拆分时,它与文件路径相关。如果是这种情况,您可以使用以下快捷方式:
import os
R = os.path.split(path)
只要做:
R = S.split('/')[2]
选择第三个值。通常,使用/
进行拆分时,它与文件路径相关。如果是这种情况,您可以使用以下快捷方式:
import os
R = os.path.split(path)
您的语法无效(
E==len(Q)
)
要访问第三个值,请执行以下操作:
Q = S.split('/')
R = Q[2]
现在,您可能希望使用len()
首先检查并确保列表具有适当数量的元素,但是len()
将返回一个整数,即长度。例如:
Q = S.split('/')
if len(Q) >= 3:
R = Q[2]
else:
# handle a situation where there aren't enough elements
您的语法无效(
E==len(Q)
)
要访问第三个值,请执行以下操作:
Q = S.split('/')
R = Q[2]
现在,您可能希望使用len()
首先检查并确保列表具有适当数量的元素,但是len()
将返回一个整数,即长度。例如:
Q = S.split('/')
if len(Q) >= 3:
R = Q[2]
else:
# handle a situation where there aren't enough elements
你的第二行根本不需要。你可以用几种方法来做到这一点
Q = S.split('/')
R = Q[2]
另一个选择是:
R = S.split('/')[2]
示例输出:
>>> S = "Hey/there/you/are"
>>> Q = S.split('/')
>>> R = Q[2]
>>> R
'you'
>>> R = S.split('/')[2]
>>> R
'you'
你的第二行根本不需要。你可以用几种方法来做到这一点
Q = S.split('/')
R = Q[2]
另一个选择是:
R = S.split('/')[2]
示例输出:
>>> S = "Hey/there/you/are"
>>> Q = S.split('/')
>>> R = Q[2]
>>> R
'you'
>>> R = S.split('/')[2]
>>> R
'you'
所有这些答案都是正确的,我只是想补充一点原始问题的错误。当您执行以下任务时:
E = len(Q)
E
正被设置为整数。当您尝试执行此操作时:
R = Q[E[2]]
实际上,您要做的是取
整数
E
的第二个元素。由于E
不是数组(技术错误是TypeError:'int'对象不可下标
),因此程序会在这里中断(实际上它会在E==len(Q)
上中断,但我假设这是您问题中的一个输入错误,因为您指出了在这一行之后发生的错误)。所有这些答案都是正确的,我只是想补充一点原始问题的问题。当您执行以下任务时:
E = len(Q)
E
正被设置为整数。当您尝试执行此操作时:
R = Q[E[2]]
实际上,您要做的是取
整数
E
的第二个元素。由于E
不是数组(技术错误是TypeError:“int”对象不是可下标的),这就是程序中断的地方(实际上它会在E==len(Q)
上中断,但我假设这是你问题中的一个错误,因为你指出了这一行之后发生的错误)。不需要E
。。。只需R=Q[2]
您不能为整数编制索引。我尝试了您的方法@Jared,但它给了我一个错误:索引器:列表索引超出范围range@Nick--那么最好看看你的分裂线有多大。可能您的字符串中少于2个'/'
。假设我的S=Hey/there/you/are,我想访问S中的第三个值,即“you”!我确实拆分了,但现在如何访问第三个Val?无需E
。。。只需R=Q[2]
您不能为整数编制索引。我尝试了您的方法@Jared,但它给了我一个错误:索引器:列表索引超出范围range@Nick--那么最好看看你的分裂线有多大。可能您的字符串中少于2个'/'
。假设我的S=Hey/there/you/are,我想访问S中的第三个值,即“you”!我确实拆分了,但现在如何访问第三个Val?这将给出第三个字符,而不是被“/”字符拆分时的第三个元素。但这正是他想要的,字符串中的第三个值您的原始答案显示了对字符串的迭代,虽然有用,与问题试图完成的内容无关。这将给出第三个字符,而不是被“/”字符拆分时的第三个元素。但这正是他想要的,字符串中的第三个值您的原始答案显示了对字符串的迭代,虽然有用,与问题试图完成的内容无关。我将使用try
/而不是检查length@JonClements说得好。如果他做出这样的假设,那么至少应该有三个要素,这将更有意义。我想我只是在这个问题本身的基础上做了一次误导性的尝试,试图说明如何使用len()。@GavinH我想我们可以放弃这个尝试/除了可怕的R,=Q[2:3]或('',)
@JonClements有一个好的。除了R=Q[2:3]或“
”之外,元组解包给您带来了什么?我将使用尝试
/,除了索引器
,而不是检查length@JonClements说得好。如果他做出这样的假设,那么至少应该有三个要素,这将更有意义。我想我只是在这个问题本身的基础上做了一次误导性的尝试,试图说明如何使用len()。@GavinH我想我们可以放弃这个尝试/除了可怕的R,=Q[2:3]或('',)
@JonClements有一个好的。除了R=Q[2:3]或“
”,元组解包给您带来了什么?