Python 是否可以将值从列表解压到切片?

Python 是否可以将值从列表解压到切片?,python,slice,unpack,Python,Slice,Unpack,我试图使用列表中的值来选择单词的一部分。以下是工作解决方案: word = 'abc'*4 slice = [2,5] #it can contain 1-3 elements def try_catch(list, index): try: return list[index] except IndexError: return None print(word[slice[0]:try_catch(slice,1):try_catch(sl

我试图使用列表中的值来选择单词的一部分。以下是工作解决方案:

word = 'abc'*4
slice = [2,5]  #it can contain 1-3 elements

def try_catch(list, index):
    try:
        return list[index]
    except IndexError:
        return None

print(word[slice[0]:try_catch(slice,1):try_catch(slice,2)])
但我想知道是否有可能缩短它?我想到了这样的事情:

word = 'abc'*4
slice = [2,6,2]
print(word[':'.join([str(x) for x in slice])]) #missing : for one element in list
它产生:

TypeError: string indices must be integers
您可以使用内置的(并且需要以不同的名称命名您的列表,以便能够访问内置的):

您可以使用内置的(并且需要以不同的名称命名您的列表,以便能够访问内置的):


它不是python
[slice][1]
,但会导致语法错误,因为获取切片而不是创建切片的语法是:

slice = [2:5]
Out:
...
SyntaxError
slice
是python内置的,所以不要隐藏它的名称。创建切片为

my_slice = slice(2, 5, 1)
其中第一个参数是起始值,下一个是停止值,最后一个是步长:

my_list = list(range(10))
my_list
Out:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

my_list[my_slice]
Out:
[2, 3, 4]

my_list[slice(3, 8, 2)]
Out:
[2, 4, 6]

请注意,我们应该将
[]
与切片一起使用,因为它调用了一个列表的方法,该列表接受
切片
对象(查看
\uuu getitem\uuuu
切片
)。

它不是python
[slice][1]
,但会导致语法错误,因为获取切片的语法是
[..
,不创建它:

slice = [2:5]
Out:
...
SyntaxError
slice
是python内置的,所以不要隐藏它的名称。创建切片为

my_slice = slice(2, 5, 1)
其中第一个参数是起始值,下一个是停止值,最后一个是步长:

my_list = list(range(10))
my_list
Out:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

my_list[my_slice]
Out:
[2, 3, 4]

my_list[slice(3, 8, 2)]
Out:
[2, 4, 6]
请注意,我们应该将
[]
与切片一起使用,因为它调用了一个列表的方法,该列表接受
切片
对象(查看
\uu getitem\uuuuuuu
切片
的最后一个链接)

word = 'abc'*4
w = list(word)
s = slice(2,6,2)
print("".join(w[s]))
试试这个:

word = 'abc'*4
w = list(word)
s = slice(2,6,2)
print("".join(w[s]))

您希望得到什么输出?不要命名变量
slice
,因为它会覆盖
\uuuuu内置\uuuu.slice
。您可能正在查找
word[slice(*[2,6,2])]
(在这里使用内置函数,而不是您的变量),但是如果没有所需的输出,很难判断。阅读这里的更多内容。因此,您想构建以下切片
2:6:2
?如果是
slice=[2,6,2]
的话,您的“工作解决方案”会出现一个
SyntaxError
word[start:stop:step]
那么只需
cb
您期望的输出是什么?不要命名变量
slice
,因为它会覆盖
\uuuuuuuuuu内置\uuuuuuuuuu.slice
。您可能正在查找
word[slice(*[2,6,2])]
(在这里使用内置函数,而不是您的变量),但是如果没有所需的输出,很难判断。阅读这里的更多内容。因此,您想构建以下切片
2:6:2
?您的“工作解决方案”错误为
SyntaxError
word[start:stop:step]
如果是
slice=[2,6,2]
它将是
word[2:6:2]
,所以只要
cb