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