Python 拆分字符串并选取值

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

我有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('/')[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]或“
”,元组解包给您带来了什么?