-6

好的,看起来很多人不明白这个问题。我会说得更清楚。

我有一个清单:

List_1 = [1,2,3,4,5,6,7,8,9]

而我在我的程序中所做的是,如果我按下 1,这将使 List_1[0] 变成 X 或我按下的任何数字,它都会变成 X。我的列表总共有 9 个数字。

我想要做的是,如果将 3 个特定数字转换为 X,那么程序将继续运行。

所以如果我最终得到:

List_1 = [1,'X',3,4,'X',6,'X',8,9]

然后程序将继续。

4

2 回答 2

3

如果您需要一个连续的集合(例如原始问题中的前三个条目),请使用切片语法:

list_2 = a[:3]

如果您只需要特定集合中的那些元素,请使用理解:

stuff_i_need = [1, 'gg']
list_2 = [x for x in L if x in stuff_i_need]

(虽然,如果你知道你需要什么并且它是一个非常小的列表,那么只需手动访问列表中包含你需要的元素的位置就可以了)。

如果您想制作列表中某些内容的字符串,一个选择是自己连接它们并使用字符串构造函数包装元素str

str(L[0]) + str(L[3])

做同样事情的另一种方法是:

import operator
reduce(operator.add, map(str, L))

# Also, just replace L with any of the slicing or accessing mentioned above.
于 2013-10-23T14:05:12.310 回答
1

如其他答案和评论所述,使用切片。但是,如果索引不连续,您可以将列表理解与enumerate

>>> [x for i, x in enumerate(a) if i in [0, 1, 3]]
[1, 'X', 'X']

更新

问题发生了变化,而是询问如何获取列表的不同部分并将它们连接成一个字符串。对上面的小修改:

>>> "".join(str(x) for i, x in enumerate(L) if i in [0, 3])
'1gg'
于 2013-10-23T14:08:58.673 回答