List的一部分变成String

时间:2013-10-23 14:03:05

标签: python

好像很多人都不理解这个问题。我会说得更清楚。

我有一个清单:

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

我在我的程序中做的是,如果我按1将使List_1 [0]进入X或按任何数字我按,它将其变为X.我的列表总共有9个数字。

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

所以,如果我最终得到:

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

然后程序将继续。

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分: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'